QT之信号和槽机制详解
一、什么是信号和槽机制(signal&slots)
QT提供了信号和槽机制用于完成接界面操作的响应,是完成两个任意的QT对象之间的通信机制;
通俗来讲,就是就是一个窗口部件的变化情况要通知给另一个窗口部件,这时我们就需要槽函数,一个窗口部件发送信号,另一个窗口部件接收信号并进行相应的操作,从而实现两个窗口部件的通信。其中,信号会在某个特定的动作下被触发,槽是等同接收并处理的信号函数;每个QT对象都包含若干个预定义的信号和若干个预定义的槽。当一个类被继承时,该类的信号和槽也同时被继承,也可以根据自己的需要来自定义信号和槽;
二、信号与槽的连接方式
(1)一个信号和另一个信号连接,代码如下:
connect(Object1,SIGNAL(signal1),Object2,SIGNAL(signal1));
表示Object1发射的信号signal1可以触发Object2的signal1发射;
(2)一个信号与多个槽相连,代码如下:
connect(Object1,SIGNAL(signal2),Object2,SIGNAL(slot2);
connect(Object1,SIGNAL(signal2),Object3,SIGNAL(slot1);