Qt - Q_OBJECT和宏

Sim*_*ity 2 macros qt qobject

Qt,我们知道这Q_OBJECT是一个.在这种情况下意味着什么?特别是我发现这个术语可能有几个不同的定义.

谢谢.

Meh*_*olf 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:
Run Code Online (Sandbox Code Playgroud)

Q_OBJECT_CHECK如果Q_OBJECT宏已在类中使用,则是另一个用于检查的宏.其他表达式定义信号/槽机制以及翻译的元对象和实用方法.