码迷,mamicode.com
首页 > 其他好文 > 详细

Qt中设置属性setAttribute(Qt::WA_DeleteOnClose)报错的情况

时间:2015-03-17 08:15:23      阅读:317      评论:0      收藏:0      [点我收藏+]

标签:

在Qt的Gui编程中,经常会用到QWidget和其子类作为父控件来显示,其上添加有若干控件。

在关闭QWidget及其子类窗口时需销毁窗口。

如果是在是定义在栈上:

MainWindow w;
 w.show();

在构造函数中增加:setAttribute(Qt::WA_DeleteOnClose)以后,

会在关闭时出现异常,因为当退出main方法时,会自动销毁窗口,而setAttribute方法会使得Qt再次销毁窗口,造成二次delete,产生报错。

如果定义在堆上 :

MainWindow  *w = new MainWindow ; 
w->show();

  在关闭时main方法不会自动销毁,而Qt会根据setAttribute设置销毁。不会报错。


Qt中设置属性setAttribute(Qt::WA_DeleteOnClose)报错的情况

标签:

原文地址:http://my.oschina.net/weiweiqiao/blog/387667

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!