Qt中设置属性setAttribute(Qt::WA_DeleteOnClose)报错的情况-CSDN博客
在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设置销毁。不会报错。