标题:我的窗口关闭后为什么没有调析构函数?
作者:seraphliu
日期:2006-05-23 16:43
内容:
RT,谢谢了
#1 [seraphliu 05-24 09:35]
没有回答?
#2 [shiroki 05-24 16:28]
这个问题很复杂,呵呵
你的widget有parent吗?
如果有,parent析构的时候会调你widget的析构函数...
你的widget是怎么创建的(new出来的? 临时变量?)?
new出来的要调delete才会析构...
有没有给widget设置WDestructiveClose这个flag?
如果设了会在close的时候析构,否则....
#3 [seraphliu 05-24 17:45]
我的窗口没有parent,是个widget,不是一个mainwindow对象,相当一个主窗口,是在main里new出来的,但是我不知道在什么地方delete它好?
我现在的做法是去获得closeEvent,在closeEvent里面释放自己new的资源,但是不知道QT控件的资源释放没有?
#4 [shiroki 05-25 14:11]
主窗口还需要释放资源吗? 主窗口关闭应该是程序都退出了,还释放什么资源阿。
我在上面那个帖子里已经说了几种情况, 如果你的不符合就不会释放资源。 照你的情况可以试试这个WDestructiveClose
#5 [seraphliu 05-25 19:00]
程序退出是对的,但是不释放资源的话,还不是在内存有很多的野指针存在,其他的程序也不能使用这段空间了
我试试WDestructiveClose这东西,谢谢你