Qt提供了信号和槽机制用于完成界面操作的响应,信号和槽机制是完成任意两个Qt对象之
间的通信机制。其中,信号会在某个特定情况或动作下被触发,槽是等同于接收并处理信号的函数。
例如,窗口里面的一个按钮,你点下去,可以发送信息;或者你点下去,进入了另外的窗口;
每个Qt对象都包含若干个预定义的信号和若干个预定义的槽。
当某一个特定事件发生时,一个信号被发送,与信号相关联的槽则会响应信号并完成相应的处理。当一个类被继承时,该类的信号和槽也同时被继承,也可以根据需要自定义信号和槽。
槽函数也分为三种类型,即public slots、private slots和protected slots。
slot是槽、signal是信号
connect(Object1,SIGNAl(signal1),Obect2,SIGNAL(signal1));
意思是ObjectI的signal1发送可以触发 Object2的signa1发送
connect(Object1,SIGNAl(signal12),Obect2,SIGNAL(Slot2));
connect(Object1,SIGNAl(signal12),Obect3,SIGNAL(Slot1));
connect(Object1,SIGNAl(signal12),Obect2,SIGNAL(Slot2));
connect(Object3,SIGNAl(signal12),Obect2,SIGNAL(Slot2));
//下面的连接方式更为常见:
connect(Object1,SIGNAl(signal),Obect2,SLOT(slot));
SIGNAL0和 SOTO是Qt定义的两个宏,它们返回其参数的C语言风格的字符串( const char*)。因此,下面关联信号和槽的两个语句是等同的:
connect(button,SIGNAl(clicked()),this,SLOT(showArea()));
connect(button,"clicked()",this,"showArea()");