专业的编程技术博客社区

网站首页 > 博客文章 正文

6.1 PyQt5控件介绍【按钮控件】-QPushButton

baijin 2025-01-23 15:06:52 博客文章 293 ℃ 0 评论

1.QPushButton简介

PyQt5中QPushButton常用的按钮控件,用于创建用户界面中的按钮。

2.QPushButton案例

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
from PyQt5.QtGui import QIcon, QPixmap
from functools import partial


class QPushButtonDemo(QWidget):
    def __init__(self):
        super(QPushButtonDemo, self).__init__()
        self.init_ui()

    def init_ui(self):
        v_layout = QVBoxLayout(self)
        self.resize(500, 300)

        self.btn1 = QPushButton('Button 1')
        self.btn1.setCheckable(True)    # 设置按钮默认被选中
        self.btn1.toggle()
        
        # self.btn1.clicked.connect(lambda: self.click_button(666))  # 通过lambda方式向事件传参
        self.btn1.clicked.connect(partial(self.click_button, 666))  # 通过partial方式向事件传参
        self.btn1.clicked.connect(self.button_status)  # 同一个按钮绑定多事件

        self.btn2 = QPushButton('图像按钮')
        self.btn2.setIcon(QIcon(QPixmap(r'../py.png')))  # 按钮设置图像

        self.btn3 = QPushButton('禁用按钮')
        self.btn3.setEnabled(False)  # 禁用按钮

        self.btn4 = QPushButton('默认按钮')
        self.btn4.setDefault(True)
        self.btn4.resize(200, 50)

        v_layout.addWidget(self.btn1)
        v_layout.addWidget(self.btn2)
        v_layout.addWidget(self.btn3)
        v_layout.addWidget(self.btn4)

    def click_button(self, btn):
        print(btn)

    def button_status(self):
        if self.btn1.isChecked():
            print('被选中')
        else:
            print('未被选中')


if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = QPushButtonDemo()
    w.show()
    sys.exit(app.exec())

3.运行结果

4.常用方法

方法

描述

setText(text)

设置按钮的文本

setIcon(icon)

设置按钮的图标

setEnabled(bool)

设置按钮是否可用。如果设置为 False,按钮将变为禁用状态

setCheckable(bool)

设置按钮是否可以被选中。如果设置为 True,则按钮将保持选中和取消选中的状态

toggle()

切换按钮的状态。如果按钮当前被选中,它将取消选中;如果按钮当前未被选中,它将选中

isChecked()

返回按钮是否被选中。如果按钮被选中,则返回 True;否则返回 False

setShortcut(QKeySequence)

为按钮设置快捷键

5.常用信号

方法

描述

clicked

按钮点击时触发信号。将信号连接到槽函数

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表