Qt - Q_OBJECT和宏

时间:2012-09-03 15:46:48

标签: qt macros qobject

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

感谢。

1 个答案:

答案 0 :(得分: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宏。其他表达式定义了信号/槽机制以及翻译的元对象和实用方法。