在Qt
中,我们知道Q_OBJECT
是宏。在这种情况下,宏意味着什么?特别是我发现术语宏可能有几个不同的定义。
感谢。
答案 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
宏。其他表达式定义了信号/槽机制以及翻译的元对象和实用方法。