(1)信号和槽机制(Signal&Slot)
Qt提供了信号和槽机制用于完成界面操作的响应,是完成两个任意Qt对象之间的通信机制。其中,信号会在某个特定情况或动作下被触发,槽是等同于接受并处理信号的函数。例如,若要将一个窗口部件的变化情况通知给另一个窗口部件,则一个窗口部件发送信号,另一个窗口部件的槽接受此信号并进行相应的操作,即可实现两个窗口部件之间的通信。每个Qt对象都包含若干个预定义的信号和若干个预定义的槽,当某一个特定事件发生时,一个信号被发射,与信号相关联的槽则会响应信号并完成相应的处理。当一个类被继承时,该类的信号和槽也同时被继承,也可以根据需要自定义信号和槽。
1)信号和槽的连接方式
<1>一个信号可以与另一个信号相连,代码如下:
connect(Object1,SIGNAL(signal1),Object2,SIGNAL(signal2));
表示Object1的信号1发射可以触发Object2的信号1发射
<2>同一个信号可以和多个槽相连,代码如下:
connect(Object1,SIGNAL(signal2),Object2,SIGNAL(slot2));
connect(Object1,SIGNAL(signal2),Object3,SIGNAL(slot1));
<3>同一个槽可以响应多个信号,代码如下
connect(Object1,SIGNAL(signal2),Object2,SIGNAL(slot2));
connect(Object3,SIGNAL(signal2),Object3,SIGNAL(slot2));
但是常用的连接方式是:
connect(Obje