Qt:Qt桌面程序正常退出注意事项
一般情况下,Qt窗体的创建和显示命令如下:
Main_window main_window;
main_window.show();
主窗体中设置属性Qt::WA_DeleteOnClose
setAttribute(Qt::WA_DeleteOnClose);
则在main.cpp中可以将窗体创建为指针,这样在退出时可以正确释放指针资源。
Main_window* main_window{new Main_window{nullptr}};
main_window->show();
在main.cpp中使用智能指针unique_ptr
使用智能指针unique_ptr时,在主窗体中不能设置Qt::WA_DeleteOnClose,两者都会在运行结束后释放指针资源,造成异常。
// 使用智能指针,确保在退出作用域时,对象被销毁。
unique_ptr<Main_window> main_window = make_unique<Main_window>(nullptr);
main_window->show();