在宏中声明了几个重要的成员变量及成员函数,包括声明了一个只读的静态成员变量static MetaObject,以及3个public的成员函数
static const QMetaObject staticMetaObject;
virtual const QMetaObject *metaObject() const;
virtual void *qt_metacast(const char *);
virtual int qt_metacall(QMetaObject::Call, int, void **);
还有一个private的静态成员函数qt_static_metacall();
static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **)
这些声明在make编译阶段,通过调用moc,根据头文件生成一个moc_xxx.cpp文件。(这个步骤就是信号槽实现的核心和根本)
直接调用了QMetaObject::activate函数(位于整个结构体的最后 ),底层为调用metacall()函数或callFunction()函数
connect(const QObjectsender, const charsignal,const QObject * receiver, const char * method,Qt::ConnectionType type = Qt::Auto Connection)。