版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
信号与槽
Qt中定义了与系统消息相关的概念
- 信号(Signal):由操作系统产生的消息
- 槽(Slot):程序中的消息处理函数连接
- (Connect):将系统消息绑定到消息处理函数
Qt中的消息处理机制
Qt的核心-QObject::connect函数
bool connect(const QObject* sender, //发送对象
const char* signal, //消息名
const QObject* receiver, //接受对象
const char* method, //接受对象额成员函数
Qt::ConnectionType type = Qt ::AutoConnection);
在Qt中,消息用字符串进行描述
connect函数在消息名和处理函数之间建立映射
- SIGNAL:用于指定消息名
- SLOT:用于指定消息处理函数名
- Q_OBJECT:所有自定义槽的类必须在类声明的开始处加上Q_OBJRCT
- slots:用于在类中声明消息处理函数
自定义槽:
- 只有QObject的字类才能自定义槽
- 定义槽的类必须在声明的最开始处使用Q_OBJECT
- 类中声明槽时需要使用slots关键字
- 槽与所处理的信号在函数签名上必须一致
- SIGNAL和SLOT所指定的名称中:可以包含参数类型 不能包含具体的参数名