首页 > 其他 > 详细

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

时间:2015-03-17 08:12:48      阅读:573      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!