• 10226阅读
  • 9回复

我的窗口关闭后为什么没有调析构函数? [复制链接]

上一主题 下一主题
离线seraphliu
 

只看楼主 正序阅读 楼主  发表于: 2006-05-23
RT,谢谢了
离线lanmanck

只看该作者 9楼 发表于: 2020-07-27
我也发现了,新建一个mainwindow工程,关闭时居然不调用析构函数,打断点和qdebug都见到没进去,为何?
精彩博客:labisart.com
离线fygenius

只看该作者 8楼 发表于: 2006-06-19
窗口关闭不等于对象销毁~ 这是两个概念
离线tuizi7835

只看该作者 7楼 发表于: 2006-06-16
是正常退出吗?检查一下有没有类似exit()的函数。
离线fygenius

只看该作者 6楼 发表于: 2006-06-14
你用new 来构造对象。然后释放的时候delete 就会调用西沟函数了。
否则要到你close你住窗口才会西沟
离线seraphliu

只看该作者 5楼 发表于: 2006-05-25
程序退出是对的,但是不释放资源的话,还不是在内存有很多的野指针存在,其他的程序也不能使用这段空间了
我试试WDestructiveClose这东西,谢谢你
离线shiroki

只看该作者 4楼 发表于: 2006-05-25
主窗口还需要释放资源吗? 主窗口关闭应该是程序都退出了,还释放什么资源阿。
我在上面那个帖子里已经说了几种情况, 如果你的不符合就不会释放资源。 照你的情况可以试试这个WDestructiveClose
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线seraphliu

只看该作者 3楼 发表于: 2006-05-24
我的窗口没有parent,是个widget,不是一个mainwindow对象,相当一个主窗口,是在main里new出来的,但是我不知道在什么地方delete它好?
我现在的做法是去获得closeEvent,在closeEvent里面释放自己new的资源,但是不知道QT控件的资源释放没有?
离线shiroki

只看该作者 2楼 发表于: 2006-05-24
这个问题很复杂,呵呵

你的widget有parent吗?
  如果有,parent析构的时候会调你widget的析构函数...

你的widget是怎么创建的(new出来的? 临时变量?)?
  new出来的要调delete才会析构...

有没有给widget设置WDestructiveClose这个flag?
  如果设了会在close的时候析构,否则....
2条评分好评度+1金钱+1
kkkiio 好评度 +1 解决了我的问题 2016-01-28
kkkiio 金钱 +1 解决了我的问题 2016-01-28
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线seraphliu

只看该作者 1楼 发表于: 2006-05-24
没有回答?
快速回复
限100 字节
 
上一个 下一个