在Qt
,我们知道那Q_OBJECT
是一个宏。在这种情况下,宏是什么意思?特别是我发现宏这个词可能有几个不同的定义。
谢谢。
宏只是意味着它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
宏是否已在类中使用的宏。其他表达式定义了信号/槽机制以及转换的元对象和实用方法。