qt delete
1 Qt半自动的内存管理
Qt中已下情况new出的对象可以不用亲自去delete:
(1)QObject及其派生类的对象,如果其parent非0,则其parent析构时会析构该对象,除此之外,有些类的对象可以接收设置一些特别的标记,例如:
1) QWidget及其派生类的对象,可以设置Qt::WA_DeleteOnClose标志位(当close时会析构该对象)
2)QAbstractAnimation派生类的对象,可以设置QAbstractAnimation::DeleteWhenStopped
3)QRunnable::setAutoDelete()
4)MediaSource::setAutoDelete()
2 父子关系
在Qt中,每个QObject内部都有一个list,用来保存所有的children,还有一个指针,保存自己的parent。当它自己析构时,它会将自己从parent列表中删除,并且析构掉所有的children。
建立与解除
Q_INVOKABLE QObject::QObject(QObject)
- 1
创建一个QObject对象时,如果指定了父对象,它就会将自己添加到父对象的 children 列表中
QObject::~QObject () [virtual]
- 1
当一个QObject对象析构时,它会将自己从父对象的 children 列表中移除(parent非0的话)
void QObject::setParent ( QObject * parent )
- 1
通过该函数,将自己从原父对象的children中删除,添加到新parent的children列表中
注:这三个函数都是通过一个内部私有函数来实现的,这就是
QObjectPrivate::setParent_helper(QObject *o)
【转】https://blog.csdn.net/xu1129005165/article/details/82348947
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2020-02-19 PKCS11
2020-02-19 windows dll
2020-02-19 程序员等级
2020-02-19 书生
2020-02-19 航空661标准者
2020-02-19 听一听世界经典歌曲