[Qt] deleteLater 和 delete

文章目录

deleteLater

deleteLater 是 QObject 类对象的成员函数,用于延迟删除一个 QObject 类对象。deleteLater 依赖于事件循环,调用 deleteLater 后本质是发送了一个 DeferrerDelete 事件,在事件循环处理中把对象删除。

deleteLater 会在当前对象的所有事件处理完成后再删除对象,deleteLater 会在当前对象的所有事件处理完成后再删除对象。

cpp 复制代码
//工作对象工作完成,停止线程
QObject::connect(workObject,&WorkObject::workFinished,[&](){
    workThread->quit();
    workThread->wait();
});
//工作线程停止,删除工作对象
QObject::connect(workThread,&QThread::finished,workObject,&WorkObject::deleteLater );
//工作对象销毁,删除工作线程
QObject::connect(workObject,&WorkObject::destroyed,workThread,&QThread::deleteLater );

delete

delete 是立即删除对象,对象的既有事件不再处理。

参考链接

Qt deleteLater

相关推荐
zoujiahui_20184 分钟前
使用venv命令创建和使用python环境
开发语言·python
666HZ6664 分钟前
C语言——putchar 与 getchar
c语言·开发语言
姚华军12 分钟前
利用Python算法,解析PDF文件并生成文档分块Chunks,追加到RagFlow知识库
开发语言·python·pdf·chunks·ragflow
geekmice13 分钟前
Thymeleaf传递复杂对象参数解决思路
开发语言·lua
我超级能吃的14 分钟前
线程池核心原理及使用
java·开发语言
郝学胜-神的一滴17 分钟前
Effective Modern C++ 条款34:优先考虑lambda而非std::bind
开发语言·c++·程序人生
无敌最俊朗@28 分钟前
C++ 内存管理与编译原理 (面试复习2)
java·开发语言·jvm
火山灿火山30 分钟前
Qt信号和槽
开发语言·qt
这样の我36 分钟前
java 模拟chrome tls指纹
java·开发语言·chrome
m0_6612791837 分钟前
学习笔记-安装并启动 Jupyter Noteboo
开发语言·python