Qt5.9 入门(1):信号与槽
信号与槽(Singal & Slot)是Qt编程的基础,也是Qt的一大创新(作者在接触Qt之前未听过这个词汇)。
- 信号(Signal)指特定情况下发生的事件,例如PushButton单击鼠标产生的clicked()事件,ComboBox在选择的列表项发生改变时产生的CurrentIndexChanged()事件。
- 槽(Slot)就是对信号进行响应的函数。槽函数可以与信号关联,当信号(事件)发生时,关联的槽函数被自动的执行。此时,可以不恰当的比喻为信号的回调函数。
- OQbject::connect()用于关联信号与槽,其格式为:
QObject::connect(sender, SIGNAL(signal()), receiver, SLOT(slot());
其中sender是产生信号的对象名称, signal() 是信号名称, receiver 是接受信号的对象名称,slot() 是槽函数的名称,需要带括号,有参数还需要指明。
理解:sender 对象产生了一个事件,会发送一个信号signal(),receivery由OQbject::connect()函数与sender对象的signal()进行了绑定,所以会调用绑定的槽函数slot()进行处理。