文章目录
- ⚙️ 一、基本概念与规则
-
- 1. 信号(Signal)
- 2. 槽(Slot)
- 🔌 二、连接函数 connect() 详解
-
- 函数原型:
- 参数说明
- 类型 行为 场景
- 🧩 三、实际场景示例
-
- 场景1:按钮点击关闭窗口
- 场景2:实时验证输入框文本
- ⚡️ 四、高级技巧
-
- 1. Lambda表达式作为槽
- 2. 处理信号重载
- ⚠️ 五、常见问题与解决
-
- 1. 信号槽未触发
- 2. 跨线程崩溃
- 3. 参数类型不匹配
- 4. 重复连接导致多次触发
- 💎 总结
信号和槽是Qt框架实现对象间通信的核心机制,通过松耦合的方式实现事件响应和组件交互。以下从基础概念、参数规则、连接方式、实际场景示例到高级用法进行系统讲解。
⚙️ 一、基本概念与规则
1. 信号(Signal)
• 定义:事件发生时自动触发的通知(如按钮点击clicked())。
• 声明:在类中声明为signals:,只需声明不实现,无返回值(void)。
• 示例:
class Button : public QWidget {Q_OBJECTsignals:void clicked