• 5571阅读
  • 7回复

[已解决]程序关闭阶段的处理该写在哪里? [复制链接]

上一主题 下一主题
离线zonelight
 
只看楼主 倒序阅读 楼主  发表于: 2010-04-27
就是整个程序关闭的时候要释放一个内存空间,该在哪里free掉?还有我主窗体关闭的时候其他窗体却没有关闭,这个又该怎么办?
[ 此帖被午小夜在2010-04-27 21:19重新编辑 ]
离线kimtaikee

只看该作者 1楼 发表于: 2010-04-27
重载closeEvent(QCloseEvent* e)

离线benbenmajia

只看该作者 2楼 发表于: 2010-04-27
1,free的时候当然是用完之后才能free
2,主窗体关闭其他没有关闭一是你没有关闭这些窗口,2是你退出程序的时候用的是close()
安然.....
离线zonelight
只看该作者 3楼 发表于: 2010-04-27
所以我的意思就是想找到主窗体关闭时候的那段代码然后在那里free掉。
close()的话我现在并没有使用到这个,用QT CREATOR开发的,关闭我就是点他窗体本来有的那个右上角的叉而已。所以我现在的程序是一个个把所有的窗体全叉掉以后才能全部关闭。
总之我完全没有在程序结束的之类的地方写过任何东西,因为我根本就不知道程序结束的那段代码在哪里。。。。。。。
离线zonelight
只看该作者 4楼 发表于: 2010-04-27
引用第1楼kimtaikee于2010-04-27 09:10发表的  :
重载closeEvent(QCloseEvent* e)

这个具体该怎么做能详细说下吗?我的代码里貌似有看到个自动生成的changeEvent,没有closeEvent,是要自己添加吗?
离线yangfanxing
只看该作者 5楼 发表于: 2010-04-27
引用第4楼zonelight于2010-04-27 16:05发表的  :
这个具体该怎么做能详细说下吗?我的代码里貌似有看到个自动生成的changeEvent,没有closeEvent,是要自己添加吗?


对的。
确切地说叫“实现虚函数”
详情传送门:
http://doc.qt.nokia.com/4.6/qwidget.html#closeEvent
PHPWind好恶心。。。不想看这种界面。。。
离线午小夜

只看该作者 6楼 发表于: 2010-04-27
栈里边的东西,编译器会在不需要使用的时候自动清除。堆里边的东西,主要是new出来的东西,如果指定了parent,在parent删除的时候,qt会帮助自动删除所有children,没有指定parent的,可以写在析构函数中delete,也可以在closeEvent里边delete。。。自由存储区里的东西,和堆类似的,用free删除。
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
离线zonelight
只看该作者 7楼 发表于: 2010-04-27
OK 马上研究 先谢过!
快速回复
限100 字节
 
上一个 下一个