Qt:Qt桌面程序正常退出注意事项

一般情况下,Qt窗体的创建和显示命令如下:

cpp 复制代码
Main_window main_window;
main_window.show();

主窗体中设置属性Qt::WA_DeleteOnClose

cpp 复制代码
setAttribute(Qt::WA_DeleteOnClose);

则在main.cpp中可以将窗体创建为指针,这样在退出时可以正确释放指针资源。

cpp 复制代码
Main_window* main_window{new Main_window{nullptr}};
main_window->show();

在main.cpp中使用智能指针unique_ptr

使用智能指针unique_ptr时,在主窗体中不能设置Qt::WA_DeleteOnClose,两者都会在运行结束后释放指针资源,造成异常。

cpp 复制代码
// 使用智能指针,确保在退出作用域时,对象被销毁。
unique_ptr<Main_window> main_window = make_unique<Main_window>(nullptr);
main_window->show();
相关推荐
Jackilina_Stone31 分钟前
【faiss】用于高效相似性搜索和聚类的C++库 | 源码详解与编译安装
android·linux·c++·编译·faiss
喜欢吃燃面42 分钟前
C++:list(1)list的使用
开发语言·c++·学习
神仙别闹2 小时前
基于QT(C++)实现(图形界面)选课管理系统
java·c++·qt
NicolasCage2 小时前
C语言指针Pointers
c++·后端
「QT(C++)开发工程师」2 小时前
Qt C++动态库SDK在Visual Studio 2022使用(C++/C#版本)
c++·qt·c#·visual studio
weixin_537590453 小时前
【任务6.13】计算肇事汽车号码
c++·算法·汽车
两颗泡腾片4 小时前
黑马程序员C++核心编程笔记--类和对象--运算符重载
c++·笔记
用户686916134904 小时前
1999年NOIP普及组旅行家的预算(洛谷P1016):贪心算法实战指南
c++
程序员编程指南4 小时前
Qt 与 WebService 交互开发
c语言·开发语言·c++·qt·交互
溟洵4 小时前
Qt 窗口 工具栏QToolBar、状态栏StatusBar
开发语言·前端·数据库·c++·后端·qt