【QT】QT对象树

2

QT对象树

QT提供了对象树机制,能够自动、有效的组织和管理继承自QObject的对象。

每个继承自QObject类的对象通过它的对象链表(QObjectList)来管理子类对象,当用户创建一个子对象时,其对象链表相应更新子类对象的信息,对象链表可通过children()获取。

当父类对象析构的时候,其对象链表中的所有(子类)对象也会被析构,父对象会自动,将其从父对象列表中删除,QT保证没有对象会被delete两次。开发中手动回收资源时建议使用deleteLater代替delete,因为deleteLater多次是安全的。

image-20220113123903219


派生于QObject的类,申请资源的时候,我们可以不用过分的去关注资源回收情况,因为当该基类销毁回收时,子类也会一起销毁回收。


当某一个子类进行销毁的时候,如果它也有子类,对应的子类也会销毁回收。


image-20220113215247296

image-20220113215301204