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();
相关推荐
oioihoii1 天前
C++中的线程同步机制浅析
开发语言·c++
枫叶丹41 天前
【Qt开发】布局管理器(五)-> QSpacerItem 控件
开发语言·数据库·c++·qt
月下倩影时1 天前
ROS1基础入门:从零搭建机器人通信系统(Python/C++)
c++·python·机器人
_OP_CHEN1 天前
C++进阶:(八)基于红黑树泛型封装实现 map 与 set 容器
开发语言·c++·stl·set·map·红黑树·泛型编程
无敌最俊朗@1 天前
C++线程中detach和join的注意点
c++
努力努力再努力wz1 天前
【Linux进阶系列】:线程(下)
linux·运维·服务器·c语言·数据结构·c++·算法
qq_401700411 天前
Qt键盘组合
开发语言·qt
abcd_zjq1 天前
VS2026+QT6.9+ONNX+OPENCV+YOLO11(目标检测)(详细注释)(附测试模型和图像)
c++·人工智能·qt·目标检测·计算机视觉·visual studio
西幻凌云1 天前
认识设计模式——单例模式
c++·单例模式·设计模式·线程安全·饿汉和懒汉
Tipriest_1 天前
C++ 图形中间件库Magnum详细介绍
开发语言·c++·magnum