解析:这里的 label 没有指定parent,也没有调用delete,所以会造成内存泄漏。
解决方式:
- 在栈上分配对象,而不是堆上
- 设置标志位 Qt::WA_DeleteOnClose,close() 后会 delete
- 手动 delete label
示例2:
- #include <QApplication>
- #include <QLabel>
- int main(int argc, char *argv[])
- {
- QApplication app(argc, argv);
- QLabel label("Hello World !");
- label.show();
- label.setAttribute(Qt::WA_DeleteOnClose);
- return app.exec();
- }