[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

相关推荐
百锦再14 小时前
金仓数据库提出“三低一平”的迁移理念
开发语言·数据库·后端·python·rust·eclipse·pygame
茉莉玫瑰花茶15 小时前
从零搭建 C++ 在线五子棋对战项目:从环境到上线,全流程保姆级教程
开发语言·c++
卡卡酷卡BUG15 小时前
2025年Java面试题及详细解答(MySQL篇)
java·开发语言·mysql
野生工程师15 小时前
【Python爬虫基础-1】爬虫开发基础
开发语言·爬虫·python
wuwu_q15 小时前
彻底讲清楚 Kotlin 的 when 表达式
android·开发语言·kotlin
北城以北888815 小时前
SSM--MyBatis框架之动态SQL
java·开发语言·数据库·sql·mybatis
梵尔纳多15 小时前
ffmpeg 使用滤镜实现播放倍速
c++·qt·ffmpeg
木易 士心15 小时前
Android 开发核心技术深度解析
android·开发语言·python
程序员烧烤15 小时前
【Java基础14】函数式接口、lamba表达式、方法引用一网打尽(下)
java·开发语言
lzq60316 小时前
Python虚拟环境全指南:venv与conda对比与实践
开发语言·python·conda