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();
相关推荐
lansye7 分钟前
侃侃AI编程
开发语言·qt·ai编程
Aderversa2 小时前
C++开源协程库async_simple有栈协程源码分析
c++·协程
uyeonashi2 小时前
【QT】窗口详解
开发语言·c++·qt·学习
Hello eveybody3 小时前
C++介绍整数二分与实数二分
开发语言·数据结构·c++·算法
空白木各3 小时前
evo工具
c++
编码小笨猪3 小时前
浅谈Linux中一次系统调用的执行过程
linux·服务器·c++
呃m6 小时前
双重特征c++
c++
景彡先生6 小时前
C++ 中文件 IO 操作详解
开发语言·c++
无影无踪的青蛙7 小时前
[C++] STL大家族之<map>(字典)容器(附洛谷)
开发语言·c++
二进制人工智能7 小时前
【OpenGL学习】(四)统一着色和插值着色
c++·opengl