[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

相关推荐
kupeThinkPoem1 天前
Qt中setSpacing与setContentsMargins的区别
qt
历程里程碑1 天前
C++ 6 :string类:高效处理字符串的秘密
c语言·开发语言·数据结构·c++·笔记·算法·排序算法
武帝为此1 天前
【字典树 C++ 实现】
开发语言·c++
悟能不能悟1 天前
java 设置日期返回格式的几种方式
java·开发语言
未来之窗软件服务1 天前
幽冥大陆(四十八)P50酒店门锁SDK 苹果object c语言仙盟插件——东方仙盟筑基期
c语言·开发语言·酒店门锁·仙盟创梦ide·东方仙盟·东方仙盟sdk
while(1){yan}1 天前
基于IO流的三个小程序
java·开发语言·青少年编程
王燕龙(大卫)1 天前
rust:线程
开发语言·rust
Dev7z1 天前
基于MATLAB的零件表面缺陷检测系统设计与实现
开发语言·人工智能·matlab
曼巴UE51 天前
UE C++ 字符串的操作
java·开发语言·c++
天天进步20151 天前
Linux 实战:如何像查看文件一样“实时监控” System V 共享内存?
开发语言·c++·算法