PyQt5信号与槽基本操作:从Qt Designer到代码实现

凌晨两点半
凌晨两点半
发布时间:2026-10-13| 4人浏览过
原创

本文详细介绍PyQt5中信号与槽的基本操作流程。通过Qt Designer可视化界面,演示如何为按钮控件绑定clicked()信号,并连接系统预定义槽如hide()、show()和clear()。同时深入讲解如何创建自定义槽函数,包括在.ui文件中定义槽名、转换.py文件后在代码中实现具体逻辑,以及最终运行主函数的完整步骤。

信号与槽基本操作

首先启动Qt Designer,在界面中添加所需的控件,本文以按钮控件为例进行说明。

按下F4键进入信号/槽编辑模式后,选中需要绑定信号与槽的按钮,此时按钮边框会变为红色。按住鼠标左键并拖动,拉出一条红色连线。若需控制旁边的Label控件,则将红线连接至该Label上(见图1);若需对主窗口(MainWindow)进行操作,则将链接指向主窗口,此时会出现类似物理电路中“接地”的符号(见图2)。

图1

图2

完成连线后,系统会弹出配置窗口(见图3)。在左侧列表中可以选择具体的信号,例如图中选择的“clicked()”,表示点击按钮时触发右侧对应的槽函数操作。

勾选下方的“show signals。。。。”选项后,右侧列表将显示系统中已定义好的槽函数,例如“clear()”代表清空内容,“close()”代表关闭窗口。

如果不勾选“show signals。。。。”选项,则需要手动创建自定义槽函数。需要注意的是,只有当连接对象为主窗口(MainWindow)时,才允许自定义槽函数。

图3

自定义槽

若不勾选“show signals。。。。”,则会弹出如图4所示的界面(右侧区域显示自定义槽,若未预先定义则可能为空)。点击右下角的“Edit”按钮,将弹出如图5所示的配置窗口。

图4

图5

点击加号图标,修改自定义槽的名称(例如图中设置为trainBtn()),然后点击确定返回图4界面。此时右侧列表中会出现已添加的自定义槽。在图4中确认信号与槽的对应关系后,点击确定即可完成该按钮信号与槽的绑定,即定义了点击按钮后的具体行为。

本文构建了一个简单的测试界面,效果如图6和图7所示:

通过隐藏与显示控制左侧的“label”控件,对应的槽函数分别为“hide()”和“show()”。

通过显示文字与清除文字控制左侧的“textBrowser”控件,其中清除文字按钮绑定的槽为“clear()”,而显示文字功能则通过自定义槽实现。相关代码将在后续添加自定义槽功能的环节中详细阐述。

图6

图7

添加自定义槽的功能:

首先保存Qt Designer设计的文件。切换回PyCharm界面,在文件列表中可以看到刚才设计的“.ui”文件(见图8)。将“.ui”文件转换为“.py”文件(参考文章开头的博客教程),并在生成的“.py”文件(文件名与.ui文件相同)中添加自定义槽的代码。

图8

找到生成按钮代码的部分,如图9所示。按照图中指示,将括号内的内容修改为:self.自定义槽的名字。

图9

在该类的末尾增加自定义函数,如图10所示,实现的功能为:在textBrowser控件中输出“hi,PyQt5”。

图10

在代码的最后部分加入主函数,以便运行程序,代码结构如图11所示:

图11

至此,本文主要介绍了Python GUI库图形界面开发中PyQt5信号与槽的基本操作。如果文中存在错误,欢迎指出。更多关于这方面的内容请查看下面的相关链接。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。