找回密码
 立即注册
收起左侧

QGraphicsScene scene和QGraphicsScene *scene = new QGraphicsScene.?

3
回复
7273
查看
[复制链接]
累计签到:168 天
连续签到:1 天
来源: 2013-11-13 18:25:48 显示全部楼层 |阅读模式
1Qter豆
QGraphicsScene Scene;
scene.addItem(Item);
view->setScene(&Scene);

QGraphicsScene *Scene =  new QGraphicsScene;
Scene->addItem(item);
view->setScene(scene);
这两个结果为什么会不同那?时间太长了,我也忘了有啥不同了,但是,展示的结果一定是有差异的,WHY???

最佳答案

查看完整内容

上面的代码可以用吗?应该用第二种才可以的。 scene必须创建在堆上的,就是第二种方式。像第一种,如果放到main()函数里面可能可以出来效果,但是放到其他类的函数里面,就是个临时变量,运行完就释放了,所以不会有效果的。
回复

使用道具 举报

累计签到:1570 天
连续签到:1 天
2013-11-13 18:25:49 显示全部楼层
上面的代码可以用吗?应该用第二种才可以的。

scene必须创建在堆上的,就是第二种方式。像第一种,如果放到main()函数里面可能可以出来效果,但是放到其他类的函数里面,就是个临时变量,运行完就释放了,所以不会有效果的。
回复

使用道具 举报

累计签到:168 天
连续签到:1 天
2013-11-14 19:46:48 显示全部楼层
yafeilinux 发表于 2013-11-14 14:56
上面的代码可以用吗?应该用第二种才可以的。

scene必须创建在堆上的,就是第二种方式。像第一种,如果放 ...

一语中的,就是这个理。还有,是不是我在程序中用第一种方式定义类时,都不需要考虑内存的问题(它运行完自动释放),而第二种方式定义的类就要用delete或者也不管那,会出现内存的泄漏问题吗
回复

使用道具 举报

累计签到:1570 天
连续签到:1 天
2013-11-15 10:28:50 显示全部楼层
cll 发表于 2013-11-14 19:46
一语中的,就是这个理。还有,是不是我在程序中用第一种方式定义类时,都不需要考虑内存的问题(它运行完 ...

嗯。第二种在创建的时候指定this参数就不用考虑内存泄露了,这个是对象树在起作用。

具体可以看看:http://www.qter.org/forum.php?mod=viewthread&tid=696
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了