Qt元对象系统
Qt元對(duì)象系統(tǒng)
- Qt元對(duì)象系統(tǒng)
Qt元對(duì)象系統(tǒng)
Qt的元對(duì)象系統(tǒng)提供了對(duì)象間通信,運(yùn)行時(shí)類型信息和動(dòng)態(tài)屬性系統(tǒng)的信號(hào)和時(shí)隙機(jī)制。
元對(duì)象系統(tǒng)基于三件事:
該QObject的類提供一個(gè)基類,可以采取元對(duì)象系統(tǒng)的優(yōu)點(diǎn)的對(duì)象。
所述Q_OBJECT類聲明的私人段內(nèi)的宏用于啟用元對(duì)象的特性,諸如動(dòng)態(tài)屬性,信號(hào),和槽。
的元對(duì)象編譯器(moc)將每個(gè)QObject的子類用的必要的代碼來(lái)實(shí)現(xiàn)的元對(duì)象特征。
該moc工具讀取C ++源文件。如果找到包含Q_OBJECT宏的一個(gè)或多個(gè)類聲明,它將生成另一個(gè)C ++源文件,其中包含每個(gè)這些類的元對(duì)象代碼。生成的源文件要么被#include“ d”到類的源文件中,要么通常被編譯并與類的實(shí)現(xiàn)鏈接。
除了提供用于對(duì)象之間通信的信號(hào)和時(shí)隙機(jī)制(引入系統(tǒng)的主要原因)之外,元對(duì)象代碼還提供了以下附加功能:
QObject :: metaObject()返回該類的關(guān)聯(lián)元對(duì)象。
QMetaObject :: className()在運(yùn)行時(shí)以字符串形式返回類名稱,而無(wú)需通過(guò)C ++編譯器提供本機(jī)運(yùn)行時(shí)類型信息(RTTI)支持。
QObject :: inherits()函數(shù)返回對(duì)象是否是繼承QObject繼承樹(shù)中指定類的類的實(shí)例。
QObject :: tr()轉(zhuǎn)換字符串以進(jìn)行國(guó)際化。
QObject :: setProperty()和QObje
總結(jié)
- 上一篇: 回形针是谁 因争议话题再次停止更新
- 下一篇: 平安质子重离子医疗保险是什么意思