[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

相关推荐
xieliyu.2 小时前
Java算法精讲:双指针(二)
java·开发语言·算法
爱思考的小伙3 小时前
Qt-03:串口助手
qt
何以解忧,唯有..3 小时前
Python包管理工具pip:从入门到精通
开发语言·python·pip
雪的季节3 小时前
RabbitMQ详解
开发语言
ice8130331814 小时前
【Python】Matplotlib折线图绘制
开发语言·python·matplotlib
三品吉他手会点灯4 小时前
C语言学习笔记 - 44.运算符和表达式 - 运算符2 - 除法与取余运算符
c语言·开发语言·笔记·算法
kkeeper~4 小时前
0基础C语言积跬步之动态内存管理
c语言·开发语言
橘右今4 小时前
2026 Java后端高频面试宝典
java·开发语言·面试
微小冷4 小时前
Julia卫星工具箱SatelliteToolbox简介
开发语言·航天·坐标转换·julia·卫星工具箱
2601_colin4 小时前
Codex插件全流程实战指南
开发语言·经验分享·笔记·微信开放平台