Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104337
  • 博文数量: 27
  • 博客积分: 807
  • 博客等级: 军士长
  • 技术积分: 325
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-04 22:11
文章分类
文章存档

2012年(1)

2011年(14)

2010年(12)

分类:

2010-05-27 22:37:07

学习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 )

/* tmake ignore Q_OBJECT */
#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机制的几个函数和成员。
阅读(1119) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~