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();
相关推荐
Lhan.zzZ1 小时前
Qt WebEngineView 在 Linux 上无法加载网页:从“看不见 HTML“到“禁用沙箱“
linux·c++·qt
sysu_chenxy3 小时前
二重循环输出二维图形
c++
划破黑暗的第一缕曙光4 小时前
[C++]:2.类和对象(下)
c++·类和对象·对象·类
黎相思5 小时前
LRU Cache
c++·缓存
UIU1146 小时前
P1003 [NOIP 2011 提高组] 铺地毯
数据结构·c++·算法
xxwl5857 小时前
区域赛算法模版第四章---数据结构
数据结构·c++·算法
余额瞒着我当琳9 小时前
哈希表底层原理解析,直接定址法,哈希冲突,负载因子,哈希函数,开放定址法
java·c++·哈希算法·散列表
xxwl5859 小时前
区域赛算法模版第五章---数学与数论
c++·笔记·算法
Quz9 小时前
QML TabBar 标签栏交互效果合集
qt·动画·qml
局部有解9 小时前
LeetCode Hot100 438 找到字符串中所有字母异位词
c++·算法·leetcode