一.信号与槽
1.QT元对象系统
QT元对象系统提供三件事情:
1.QObject类
2.Q_OBJECT 宏,声明在类私有段中
3.moc编译器:为每个Qobject子类对象生成实现元对象特性(如信号槽)的代码。
moc读入c++源文件,若发现存在Q_OBJECT 宏的对象,就会将这个宏展
开生成moc文件,包含元对象实现的代码。
2.connect 函数
QMetaObject::Connection QObject::connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type = Qt::AutoConnection)
连接类型:Qt::AutoConnection:默认自动连接,接收和发送信号在同一线程。
3.moc文件中可以看出:
1)信号本质是一个函数;
2)信号与槽如何调用,通过索引调用
3)信号与槽返回值是void类型,这个与connect最后一个参数有关,若接收和发送信号在同一线程,则默认链接类型为自动连接:Qt::AutoConnection,若不在则为队列连接:Qt::QueuedConnection,这是异步调用,为了通用性,信号与槽返回值是void类型。
二.用户界面对象类