Qt:内存回收

自动回收内存
1. 在栈上实例化
2. 在堆上实例化,但是使用共享指针,当引用计数为0时则自动释放
3. QWidget设置属性,关闭窗口时自动释放:setAttribute(Qt::WA_DeleteOnClose);
4. QAbstractAnimation设置属性,关闭窗口时自动释放:QAbstractAnimation::DeleteWhenStopped
5. 指定父对象
Qt使用对象树维护,当删除父对象时把其子对象一起删除,即(删除父窗口,子窗口一起删除)。如果不指定父对象,则父窗口和子窗口独立,需要手动delete
6. 直接间接继承QObject
QObject内部有一个list,会保存children(addChild()),还有一个指针保存parent(setParent()),当自己析构时,会自己从parent列表中删除并且析构所有的children
7. 智能指针QPointer:其实是模板,用于指向 QObject 及派生类的对象。当一个 QObject 或派生类对象被删除后,QPointer 能自动把其内部的指针设为 nullptr
8. deleteLater:释放对象时使用deleteLater而不是delete,deleteLater会等待事件处理完才删除对象
9. 线程池任务属性:QRunnable::setAutoDelete(),在线程结束后自动释放
MediaSource::setAutoDelete()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值