Qt信号槽
Qt 信号槽机制整理笔记
一、信号槽机制简介
信号槽机制本质上是将控件(如按钮)的某个动作(如点击)与处理函数(槽函数)关联起来。
当用户触发某个动作(如点击按钮)时,自动调用绑定的处理函数。
二、核心函数:connect()
1. 函数原型(现代写法)
1 |
|
2. 参数解析
参数位置 | 含义 |
---|---|
ui->pushButton |
信号的发送者(控件),通常是通过 Qt Designer 创建的控件,由 ui 指针访问。 |
&QPushButton::clicked |
所发送的信号,使用函数指针形式标明。 |
this |
信号接收者(槽函数所属对象),通常是当前类对象。 |
&Widget::handleClick |
槽函数(处理信号的方法),同样使用函数指针标明。 |
三、注意
1. connect()
的本质
connect()
是由QObject
提供的静态函数,用于将信号与槽函数连接起来。在 Qt 中,控件的“点击”等操作会触发信号,开发者通过连接槽函数来处理这些信号。
2. 关于 ui->pushButton
使用 Qt Designer 创建控件时,会自动生成对应的
objectName
属性。在
.ui
文件编译阶段,uic 工具会根据控件的 objectName 属性,自动生成相应的 C++ 成员变量,并封装在Ui::Widget
类中。qmake 会在构建过程中调用 uic 来完成这个自动生成过程。通过
ui->pushButton
就能访问到按钮控件。
3. 代码动态创建控件的情况
若控件是通过代码手动创建的,
ui
并不会自动包含该控件。这时应将控件设置为当前类的成员变量,以便
connect()
中访问。
Qt信号槽
https://weihehe.top/2025/06/26/信号槽/