新人自学QT,为了加强记忆,也为了学习更多,希望通过博文可以与大家共同进步,多谢大家指教
一,定义
信号和槽机是QT提供的一种用于完成界面操作响应,完成任意两个对象之间通信的机制。其中信号通过某个特定的方式被触发,槽等同于接收并处理信号的函数。
每个QT对象都包括若干个预定义的信号和槽,当某一个类被继承是,信号和槽也被继承。
二,信号与槽的连接方式
1.同一个信号可以与多个槽连接
connect(Object1,SIGNAL(signal),Object2,SIGNAL(slot2));
connect(Object1,SIGNAL(signal),Object3,SIGNAL(slot1));
2.一个信号可以与另一个信号连接
connect(Object1,SIGNAL(signal),Object2,SIGNAL(signal));
3.一个槽可以响应多个信号
connect(Object1,SIGNAL(signal),Object2,SIGNAL(slot1));
connect(Object3,SIGNAL(signal),Object2,SIGNAL(slot1));
最常用的连接方式
connect(Object1,SIGNAL(signal),Object2,SLOT(slot));
三.SIGNAL和SLOT是QT预定义的两个宏,他们返回其参数为C语言风格的字符串(const char *),因次
connect(Object1,SIGNAL(clicked()),this,SLOT(Showarea());
connect(Object1,"clicked()",this,"Showarea()");是等价的。
四。信号与槽机制的特点
1.类型安全
2.松散耦合