学习Qt - signal机制的实现(1)
Q_OBJECT是什么东西?
在QObjectdefs.h里,有:
//-------------------------------------------------------
#define slots // slots: in class
#define signals protected // signals: in class
#define emit // emit signal
#define Q_CLASSINFO( name, value ) // class info
#define Q_PROPERTY( text ) // property
#define Q_OVERRIDE( text ) // override property
#define Q_ENUMS( x )
#define Q_SETS( x )
#define Q_OBJECT \
public: \
QMetaObject *metaObject() const { \
return staticMetaObject(); \
} \
const char *className() const; \
static QMetaObject* staticMetaObject(); \
QT_TR_FUNCTION \
protected: \
void initMetaObject(); \
private: \
static QMetaObject *metaObj;
//-------------------------------------------------------
再看看生成目录下面的moc_xx.cpp,可见Q_OBJECT实际上是实现signal机制的几个函数和成员。
阅读(1175) | 评论(0) | 转发(0) |