2012-09-03 74 views
2

Qt中,我們知道Q_OBJECT。在這種情況下,是什麼意思?尤其是我發現術語可能有幾個不同的定義。Qt-Q_OBJECT和宏

謝謝。

回答

8

僅僅意味着Q_OBJECT實際上是一個C++宏。它是在定義src/corelib/kernel/qobjectdefs.h和定義讀取

#define Q_OBJECT \ 
public: \ 
    Q_OBJECT_CHECK \ 
    static const QMetaObject staticMetaObject; \ 
    Q_OBJECT_GETSTATICMETAOBJECT \ 
    virtual const QMetaObject *metaObject() const; \ 
    virtual void *qt_metacast(const char *); \ 
    QT_TR_FUNCTIONS \ 
    virtual int qt_metacall(QMetaObject::Call, int, void **); \ 
private: 

Q_OBJECT_CHECK是用於檢查,如果Q_OBJECT宏已在一類被用於另一個宏。其他表達式定義了信號/槽機制以及翻譯的元對象和效用方法。