设置标志位 Qt::WA_DeleteOnClose,close() 后会 delete。但label对象是在栈上分配的内存空间,删除栈上的内存空间对导致程序奔溃。
解决方式:
- 在堆上分配对象,而不是栈上
- 不设置标志位 Qt::WA_DeleteOnClose
示例3:
- #include <QApplication>
- #include <QLabel>
- int main(int argc, char* argv[])
- {
- QApplication app(argc, argv);
- QLabel label("Hello World !");
- QWidget w;
- label.setParent(&w);
- w.show();
- return app.exec();
- }