QT-QObject
QObjectData类
1 | class Q_CORE_EXPORT QObjectData { |
QObjectData类存储了接口对象、父对象、子对象链表、元对象及一些标志位(如事件处理、对象类型等)。
分类 | 属性 | 描述 |
---|---|---|
对外的接口 | QObject *q_ptr; | 指向与此对象关联的 QObject 接口类对象的指针 |
对象管理 | QObject *parent; |
指向此对象的父对象(父对象被销毁时,其所有子对象也会被销毁) |
QObjectList children; | 存储此对象的子对象列表 | |
uint wasDeleted : 1; |
是否已被 delete(防止多次delete对象) | |
uint isDeletingChildren : 1; | 是否正在 delete 子对象 | |
uint deleteLaterCalled : 1; | 是否调用了 deleteLater(),该方法将此对象标记为稍后删除 | |
事件和信号处理 | uint blockSig : 1; | 是否处于信号阻塞(阻止信号发送) |
uint sendChildEvents : 1; |
是否将事件消息发送给子对象 | |
uint receiveChildEvents : 1; | 是否接收来自子对象的事件消息 | |
int postedEvents; | 存储与此对象相关联的已发布事件的数量或计数 | |
对象类型 | uint isWidget : 1; | 是否为 QWidegt |
uint isWindow : 1; | 是否为 QWindow | |
元对象 | QDynamicMetaObjectData *metaObject; |
指向动态元对象数据的指针 |
QMetaObject *dynamicMetaObject() const; | 返回与此对象关联的动态元对象 | |
保留位 | uint unused : 24; | 未使用的标志位,用以对齐和保持类大小 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Kure's Blog!