文章目录
- 信号与槽的理解
信号与槽的理解
- 信号就是事件,比如button被点击的事件,ComboBox选项改变的事件,都是信号
- 槽就是对信号进行响应的函数,可以是任意自定义函数
- 一个信号可以对应多个槽
- 多个信号可以对应一个槽
- 信号的参数不能少于槽的参数,一般一一对应
- 在使用信号与槽的类中,必须在类的定义中加入宏 Q_OBJECT
- 信号与槽通过QObject::connect这一静态函数进行连接,如:
/*
* sender: 发射信号的对象名
* SIGNAL: Qt宏,用于指明信号和槽
* SLOT: Qt宏,用于指明信号和槽
* receiver: 接收信号的对象名
* signal(): 信号,一般是某个事件
* slot(): 槽,一般是系统或自定义响应函数
*/
// Qt4
QObject::connect(sender, SIGNAL(signal()), receiver, SLOT(slot()));
// Qt5
QObject::connect(sender, &Send::signal, receiver, &Receiver::slot)