目录
单个复选框
python
from PySide6.QtWidgets import QApplication, QWidget, QCheckBox, QVBoxLayout, QLabel
app = QApplication()
win = QWidget()
win.setWindowTitle("QCheckBox 单个复选框 示例")
label = QLabel("状态:", win)
label.resize(200, 20)
label.move(20, 80)
checkbox = QCheckBox("我同意用户协议", win)
checkbox.resize(200, 20)
checkbox.move(20, 20)
def on_state_changed(state):
if state == 2: # 2 = 选中
label.setText("状态:已选中")
else: # 0 = 未选中
label.setText("状态:未选中")
checkbox.stateChanged.connect(on_state_changed)
win.show()
app.exec()


多个复选框
python
from PySide6.QtWidgets import QApplication, QWidget, QCheckBox, QLabel
app = QApplication()
win = QWidget()
win.setWindowTitle("多选示例")
win.resize(300, 200)
label = QLabel("你的选择:", win)
label.resize(300, 30)
label.move(30, 20)
cb1 = QCheckBox("苹果", win)
cb1.move(30, 60)
cb2 = QCheckBox("香蕉", win)
cb2.move(30, 90)
cb3 = QCheckBox("橙子", win)
cb3.move(30, 120)
def update_choice():
choices = []
if cb1.isChecked():
choices.append("苹果")
if cb2.isChecked():
choices.append("香蕉")
if cb3.isChecked():
choices.append("橙子")
label.setText("你的选择:" + "、".join(choices) if choices else "未选择")
cb1.stateChanged.connect(update_choice)
cb2.stateChanged.connect(update_choice)
cb3.stateChanged.connect(update_choice)
win.show()
app.exec()

三态模式


python
from PySide6.QtWidgets import QApplication, QCheckBox
app = QApplication()
checkbox = QCheckBox("三态复选框")
# 开启三态模式
checkbox.setTristate(True)
checkbox.resize(200, 50)
checkbox.move(50, 50)
def state_show(state):
print(f'state:{state}')
checkbox.stateChanged.connect(state_show)
checkbox.show()
app.exec()

