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();
相关推荐
小镇学者20 小时前
【c++】C++字符串删除末尾字符的三种实现方法
java·开发语言·c++
ue星空20 小时前
R3注入反截图
c++
塔尖尖儿20 小时前
For循环中++i与i++有什么不一样?
c++
kupeThinkPoem20 小时前
QJsonObject能否嵌套查找?
qt·json
Ralph_Y20 小时前
C++虚继承
开发语言·c++
Henry Zhu12321 小时前
Qt样式系统详解(下)
qt
ZzZz_ing21 小时前
2026 - 零碎知识随记录
c++
SweetCode21 小时前
【无标题】
开发语言·c++·算法
王老师青少年编程21 小时前
信奥赛C++提高组csp-s之拓扑排序详解
c++·算法·拓扑排序·csp·信奥赛·csp-s·提高组
xie_pin_an1 天前
C++ 从入门到进阶:核心知识与实战指南
java·c++·算法