Qt提供了信号和槽机制用于完成界面操作的响应,是完成任意两个Qt对象间的通信机制。
信号:在某个特定情况或动作下被触发
槽:接受信号并处理的函数
信号与槽机制的连接方式
- QObject::connect() 的五个重载
QMetaObject::Connection connect(const QObject *, const char *, const QObject *,const char *,Qt::ConnectionType);
QMetaObject::Connection connect(const QObject *, const QMetaMethod &,const QObject *, const QMetaMethod &,
Qt::ConnectionType);
QMetaObject::Connection connect(const QObject *, const char *,const char *,Qt::ConnectionType) const;
QMetaObject::Connection connect(const QObject *, PointerToMemberFunction,const QObject *, PointerToMemberFunction,Qt::ConnectionType)
QMetaObject::Connection connect(const QObject *, PointerToMemberFunction,Functor);
2.信号与槽的连接方式
a)信号可以与信号相连
//Object1的信号1发射可以触发Object2的信号1发射
connect(Object1,SIGNAL(signal1),Object2,SIGNAL(signal1))
b)同一个信号可以和多个槽相连
connect(Object1,SIGNAL(signal2),Object2,SIGNAL(slot2))
connect(Object1,SIGNAL(signal2),Object3,SIGNAL(slot1))
c)同一个槽可以和多个信号相连
connect(Object1,SIGNAL(signal2),Object2,SIGNAL(slot2))
connect(Object3,SIGNAL(signal2),Object2,SIGNAL(slot2))