PyQt - QCheckBox 控件



QCheckBox 控件是一个用户界面元素,允许用户在两种状态之间切换:选中和未选中。它通常用于表单、首选项设置以及任何向用户呈现二元选择的场景。

当一个 QCheckBox 对象添加到父窗口时,文本标签前面会出现一个矩形框。与 QRadioButton 一样,它也是一个可选按钮。它的常用场景是当用户被要求从可用选项中选择一个或多个选项。

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

QCheckBox 控件的基本属性

  • 文本 - 复选框旁边显示的文本。
  • 选中状态 - 复选框的初始状态(选中或未选中)。
  • 三态 - 允许使用附加状态,通常用于“不确定”状态。
  • 启用 - 确定复选框是否可交互。

QCheckBox 控件中使用的方法

下表列出了常用的 QCheckBox 类方法:

序号 方法及描述
1

setChecked()

更改复选框按钮的状态

2

setText()

设置与按钮关联的标签

3

text()

检索按钮的标题

4

isChecked()

检查按钮是否被选中

5

setTriState()

为复选框提供无变化状态

每次选中或清除复选框时,对象都会发出 stateChanged() 信号。

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

示例 1:基本复选框

在这个例子中,我们创建一个简单的窗口,其中包含一个标记为“启用功能”的复选框。复选框最初处于选中状态 (setChecked(True))。当复选框状态更改时,它会调用 checkbox_state_changed 方法,该方法会打印该功能是启用还是禁用。

import sys from PyQt6.QtWidgets import QApplication, QMainWindow, QCheckBox class MainWindow(QMainWindow): def __init__(self): super().__init__() checkbox = QCheckBox('Enable Feature', self) checkbox.setChecked(True) checkbox.stateChanged.connect(self.checkbox_state_changed) self.setCentralWidget(checkbox) def checkbox_state_changed(self, state): if state == 2: print("Feature enabled!") else: print("Feature disabled!") app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec())

输出

以上代码产生以下输出:

pyqt qcheckbox example 1

示例 2:动态创建复选框

在这里,我们使用 QVBoxLayout 动态创建五个标记为“选项 0”到“选项 4”的复选框。每个复选框都连接到 checkbox_state_changed 方法,该方法会在其状态更改时打印复选框是否被选中。

import sys from PyQt6.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QCheckBox, QWidget class MainWindow(QMainWindow): def __init__(self): super().__init__() central_widget = QWidget() layout = QVBoxLayout() for i in range(5): checkbox = QCheckBox(f'Option {i}', self) layout.addWidget(checkbox) checkbox.stateChanged.connect(self.checkbox_state_changed) central_widget.setLayout(layout) self.setCentralWidget(central_widget) def checkbox_state_changed(self, state): checkbox = self.sender() print(f"{checkbox.text()} is {'checked' if state == 2 else 'unchecked'}") app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec())

输出

执行上述代码后,我们将得到以下结果:

pyqt qcheckbox example 2
广告