Python PyQt5 创建按钮及触发点击事件详解

竹里
竹里
发布时间:2026-10-14| 4人浏览过
原创

本文详解在 PyQt5 中创建 QPushButton 并绑定点击事件的方法。通过示例代码展示如何实例化按钮、使用 clicked.connect 关联自定义槽函数,并利用 self.sender() 动态获取触发源对象及其文本内容,实现灵活的交互逻辑。

PyQt5 按钮创建与事件绑定基础

在阅读本文之前,请确保您已掌握 PyQt5 的基础框架知识(可点击超链接跳转查看)。本文将深入讲解如何在 PyQt5 中创建按钮,并实现点击事件的触发与处理。具体实现代码如下:

核心代码实现


# -*- coding:utf-8 -*-
import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QPushButton
class MainWindow(QMainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.resize(600, 300)
        self.setWindowTitle('创建按钮和按钮点击事件的例子')
        self.button1 = QPushButton('按键1', self)
        self.button1.clicked.connect(self.clickButton)
    def clickButton(self):
        sender = self.sender()
        print(sender.text() + '被点击')
if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = MainWindow()
    main.show()
    sys.exit(app.exec_())

关键语句逻辑解析

以下是对代码中关键语句的详细解释:

self.button1 = QPushButton('按键1', self):这行代码用于实例化一个 QPushButton 对象。第一个参数 '按键1' 指定了按钮上显示的文字标签,第二个参数 self 表示将该按钮添加到当前已创建的 QMainWindow 窗口实例中,作为其子控件。

self.button1.clicked.connect(self.clickButton):此语句用于建立信号与槽的连接。当用户点击名为 '按键1' 的按钮时,程序将自动调用自定义的 clickButton 函数。需要注意的是,在 connect 方法中传递槽函数时,self.clickButton 后面不能带有括号,否则会导致错误,因为这里需要传递的是函数对象本身而非执行结果。

sender = self.sender():在槽函数内部,调用 self.sender() 可以获取发送该信号的对象引用。通过这种方式,我们能够识别出具体是哪个按钮触发了当前事件,例如获取到 '按键1' 这个按钮对象。

sender.text():该方法用于获取发送信号对象的文本属性。结合上一步,我们可以直接读取到触发按钮上显示的文字内容,例如 '按键1'。

运行效果展示

程序运行后的实际效果如下图所示:

以上是对 Python PyQt5 创建按钮及触发点击事件的完整解析。如需了解更多关于 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 算法库。