01 什么是对象树
- 是用来组织和管理所有 QObject及其子类创建的对象。
父对象:(this
)或(setParent
)
02 对象树的基本规则
对象树创建规则
- 对于Qt程序来说,父对象通常创建在
栈上
。
- 子对象应创建在
堆中(new)
,无需手动 delete删除。
对象树删除规则
- 父对象拥有子对象的所有权,如果父对象被删除,那么子对象也随之被删除。
- 正常情况下,最后被创建出来的对象,会被先析构掉。
- 手动删除子对象,会把该子对象从父对象的列表( children0)中移除,以防触发
Qt对象树规则
,再删除一次。
- 父对象创建于子对象之后,则子对象会被删除
两次
。
其它规则
- 确保每一个 Qobject对象在 QApplication之后创建,保证在 QApplication之前销毁,因此 QObject对象不能用 static存储类型。
后记
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)