15.PyQt5【基本组件】复选按钮-QCheckBox

一、前言

当文本标签前出现一个矩形框时QCheckBox对象被添加到父窗口。就像 QRadioButton 一样,它也是一个可选择的按钮。它的常见用途是在要求用户选择一个或多个可用选项的情况下。该类派生自 QAbstractButton 类

与单选按钮不同,复选框默认情况下不是互斥的。为了将选择限制为可用项目之一,必须将复选框添加到 QButtonGroup。

二、学习目标

1.QCheckBox常用方法

2.QCheckBox常用信号

3.QCheckBox组件的应用

三、知识点

1.【QCheckBox常用方法】

方法 描述
setChecked() 设置复选框的状态,设置为True时表示选中复选框,设置为False时表示取消选中复选框
setText() 设置复选框的显示文本
text() 返回复选框的显示文本
isChecked() 检查复选框是否被选中
setCheckState() 设置复选框的勾选状态
Qt.Checked:值为2,选中状态
Qt.PartiallyChecked:值为1,半选中状态
Qt.Unchecked:值为0,没有被选中

2.【QCheckBox常用信号】

信号 描述
clicked(bool) 当鼠标左键被按下,一直按着或者释放时,或者快捷键被按着或者释放时触发该信号
pressed() 当鼠标指针在按钮上并按下左键时触发该信号,一直按着或者按下并释放都会产生
released() 当鼠标左键被释放时触发该信号
toggled(checked) 当按钮的checkable设置为True时,其状态发生改变时触发该信号

3.【QCheckBox组件的应用】

import sys

from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QCheckBox


class QmyWidget(QWidget):

    def __init__(self, parent=None):
        super().__init__(parent)  # 调用父类的构造函数,创建QWidget窗体
        self.setupUi()

    def setupUi(self):
        """页面初始化"""
        # 设置窗体大小及标题
        self.resize(500, 400)
        self.setWindowTitle("QCheckBox组件示例")
        # 创建布局
        self.layout = QVBoxLayout()

        # QCheckBox组件定义
        self.check1 = QCheckBox(self)
        self.check1.setText("第一个复选按钮")              # check1设置文本
        self.check2 = QCheckBox('第二个复选按钮', self)
        # QCheckBox组件设置
        self.check1.setChecked(True)                    # check1设置默认勾选
        self.check2.setCheckState(Qt.PartiallyChecked)  # check2设置勾选状态为半选
        # QCheckBox关联信号
        self.check1.toggled.connect(self.on_check1_toggled)

        # 将组件添加到布局中
        self.layout.addWidget(self.check1)
        self.layout.addWidget(self.check2)
        # 为窗体添加布局
        self.setLayout(self.layout)

    def on_check1_toggled(self):
        """check1组件槽函数"""
        print("check1单选按钮被点击啦!")


if __name__ == '__main__':
    app = QApplication(sys.argv)
    myMain = QmyWidget()
    myMain.show()
    sys.exit(app.exec_())
  • 关键代码

            # QCheckBox组件定义
            self.check1 = QCheckBox(self)
            self.check1.setText("第一个复选按钮")              # check1设置文本
            self.check2 = QCheckBox('第二个复选按钮', self)
            # QCheckBox组件设置
            self.check1.setChecked(True)                    # check1设置默认勾选
            self.check2.setCheckState(Qt.PartiallyChecked)  # check2设置勾选状态为半选
            # QCheckBox关联信号
            self.check1.toggled.connect(self.on_check1_toggled)
    

    QCheckBox组件同样支持两种设置文本的方式,QCheckBox类继承自QAbstractButton 类,所以我们可以使用QAbstractButton 类的支持的信号,如toggled。

posted @ 2023-01-16 10:41  测开星辰  阅读(813)  评论(0编辑  收藏  举报