一、前言
当文本标签前出现一个矩形框时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。