Qt 消息模型
Qt 封装了具体操作系统的消息机制
Qt 遵循了经典的 GUI 消息驱动事件模型
Qt 中定义了与系统消息相关的概念
信号 (Signal)
- 由操作系统产生的消息
槽 (Slot)
- 程序中的信号处理函数
连接 (Connect)
- 将系统消息绑定到消息处理函数
Qt 中系统消息的机制
信号到槽的连接必须发生在两个 Qt 类对象之间!
Qt 中的核心 - QObject::connect 函数
在 Qt 中,消息用字符串或函数指针进行描述
connect 函数在消息名和处理函数之间建立映射
Qt 中的"新"关键字
SIGNAL
- 用于指定消息名
SLOT
- 用于指定消息处理函数名
Q_OBJECT
- 所有自定义槽的类必须在类声明的开始处加上 Q_OBJECT
slots
- 用于在类中声明消息处理函数
自定义槽
只有 QObject 的子类才能自定义槽
定义槽的类必须在声明的最开始出使用 Q_OBJECT
类中声明槽时需要使用 slots 关键字
槽与所处理的信号在函数签名上必须一致
SIGNAL 和 SLOT 所指定的名称中
- 可以包含参数类型
- 不包含具体的参数名