Qt元物件系統

2021-06-28 23:19:11 字數 1013 閱讀 3952

qmetaobject是負責元物件資訊的類,每個繼承自qobject的類都會有乙個qmetaobject物件,qobject物件共用該qmetaobject物件,給類提供遠多於c++預設的typeinfo提供的資訊。主要內容如下:

1、類資訊

類:qmetaclassinfo  q_classinfo //q_classinfo("author", "sabrina schweinsteiger")

qmetamethod

constructor ( int index ) const

intconstructorcount () const

qmetaenum      q_enum //

qmetaenum

enumerator ( int index ) const

intenumeratorcount () const

intenumeratoroffset () const

qmetamethod    q_invokable 

qmetamethod

method ( int index ) const

intmethodcount () const

intmethodoffset () const

qmetaproperty   q_property 

qmetaproperty

property ( int index ) const

intpropertycount () const

intpropertyoffset () const

qmetaproperty

userproperty () const

***offset()//返回某類資訊的第乙個index

***count()

//一般用法for(int i=***offset();i<***count();++i); 遍歷某種資訊

classname();//返回類名

superclass();//返回父類qmetaobject

Qt元物件系統

產生背景 qt的元物件系統為物件間的通訊提供了訊號槽機制 執行時型別資訊 動態屬性系統。核心內容 qt的元物件系統實現基於三方面 1.qobject基類。為能夠利用元物件系統的物件提供了乙個基類。2.q object巨集。用於實現元物件特性,如動態屬性 訊號槽。3.meta object compi...

Qt元物件系統

系統介紹 qt 元物件系統 meta object system qt的元物件系統基於如下三件事情 1.類 qobject,為所有需要利用元物件系統的物件提供了乙個基類。2.巨集 q object,通常可以宣告在類的私有段中,讓該類可以使用元物件的特性,比如動態屬性,訊號和槽。3.編譯器 元物件編譯...

QT元物件系統

物件間的訊號和槽機制。執行時型別資訊和動態屬性系統。必須繼承自qobject 在類宣告區域新增q object巨集。用於啟動原物件特性。元物件編譯器 moc 為每個qobject的子類,提供實現元物件特性所必須的 反射機制指的是在執行時,能獲取任意乙個物件的所有型別 屬性和成員函式等資訊的一種機制。...