[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

相关推荐
qq_401700415 小时前
Qt无边框窗体移动详解
qt
David猪大卫5 小时前
【C++修炼】异常
开发语言·c++·经验分享·笔记·学习·考研·面试
玖玥拾5 小时前
Lua 基础语法(六)xLua Lua 调用 C# 交互
开发语言·unity·c#·lua
Joolun商城源码_Java5 小时前
Java 商城技术栈怎么选:单体、微服务还是前后端分离多端?
java·开发语言·微服务
charlie1145141915 小时前
浅谈C++的列表初始化std::initializer_list
开发语言·数据结构·c++·list·开源项目
拒绝内耗。5 小时前
一个请求进入 Java 应用后,怎么找到我们写的方法?
java·开发语言
励志不掉头发的内向程序员5 小时前
【LibreCAD 2D架构】RS_Line创建之后发生了什么?从图形容器到屏幕渲染
开发语言·c++·qt·学习·系统架构
夕除5 小时前
redis--013
java·开发语言
object not found5 小时前
Nuxt4去掉body中默认的边距
开发语言·后端·rust
Java后端的Ai之路6 小时前
Git pull弹出vim编辑器完整排查指南
开发语言·人工智能·git·编辑器·vim