qt 采用movetothread在应用程序gui关闭时如何正确退出。

cpp 复制代码
QObject::connect(myThread, &CMyThread::started, myWork, &QMyWork::onWorkStarted);
QObject::connect(myThread, &QThread::finished, myWork, &QObject::deleteLater);
QObject::connect(myThread, &QThread::finished, myThread, &QObject::deleteLater);
QObject::connect(ui->pushButton, &QPushButton::clicked, this, &MainWindowPrivate::startWork);
myWork->moveToThread(myThread);

采用上面的常用的代码:

采用DT指针模式时,在窗口的私有数据类的析构函数中执行:

cpp 复制代码
 d->myThread->quit();
 d->myThread->wait();

QMyWork对象实例myWork能正确析构,但myThread线程不能执行&QObject::deleteLater,线程不能自己删除自己,信号与槽断了。但在窗口的closeEvent()中执行上述代码就能正确析构了,线程能自己删除自己了。QT的源代码复杂,看不懂,不知是什么原因。

相关推荐
gopyer37 分钟前
180课时吃透Go语言游戏后端开发6:Go语言的循环语句
开发语言·游戏·golang·循环语句
ajassi20003 小时前
开源 C++ QT QML 开发(二)工程结构
linux·qt·qml
楼田莉子3 小时前
Qt开发学习——QtCreator深度介绍/程序运行/开发规范/对象树
开发语言·前端·c++·qt·学习
韩立学长4 小时前
【开题答辩实录分享】以《基于python的奶茶店分布数据分析与可视化》为例进行答辩实录分享
开发语言·python·数据分析
天若有情6734 小时前
C++空值初始化利器:empty.h使用指南
开发语言·c++
远远远远子4 小时前
类与对象 --1
开发语言·c++·算法
无敌最俊朗@5 小时前
C/C++ 关键关键字面试指南 (const, static, volatile, explicit)
c语言·开发语言·c++·面试
2401_831501735 小时前
Python学习之day03学习(文件和异常)
开发语言·python·学习
酷~5 小时前
C语言模拟面向对象编程方法之多态
c语言·开发语言
hui函数5 小时前
python全栈(基础篇)——day03:后端内容(字符串格式化+简单数据类型转换+进制的转换+运算符+实战演示+每日一题)
开发语言·后端·python·全栈