此篇文章中介绍PySide2中 勾选按钮QCheckBox类的基本用法,包括 ”创建勾选按钮、勾选按钮获取选中状态、创建按钮组、按钮组添加勾选按钮、按钮组设置独占” 等,会持续进行更新,有需要的读者可以点赞收藏,也欢迎在评论区进行讨论。
self.ckb1 = QCheckBox("勾选按钮1", self.window)
self.ckb2 = QCheckBox("勾选按钮2", self.window)
self.ckb3 = QCheckBox("勾选按钮3", self.window)
self.ckb1.resize(150, 60)
self.ckb2.resize(150, 60)
self.ckb3.resize(150, 60)
self.ckb1.move(350, 120)
self.ckb2.move(350, 160)
self.ckb3.move(350, 200)
通过 checkState() 方法获取选中状态
self.button.clicked.connect(self.btnClicked)
def btnClicked(self):
if self.ckb1.checkState(): # 判断勾选按钮1的选中状态
self.textEdit.appendPlainText(f"勾选按钮1已经勾选")
else:
self.textEdit.appendPlainText(f"勾选按钮1未勾选")
self.ButtonGroup = QButtonGroup() # 创建按钮组对象
self.ButtonGroup.addButton(self.ckb1, 0) # 参数:QCheckButton ID
self.ButtonGroup.addButton(self.ckb2, 1)
self.ButtonGroup.addButton(self.ckb3, 2)
参数:
QCheckButton:勾选按钮
ID:自定义数字编号
通过 setExclusive() 方法来控制是否只能单选一个选项。
self.ButtonGroup.setExclusive(False) # exclusive属性, 来控制是否只能单选一个选项。
如果用户操作点击了按钮组 QButtonGroup 中的一个按钮, QButtonGroup 就会发出 buttonClicked 信号,可以这样指定处理该信号的函数
self.ButtonGroup.buttonClicked.connect(self.handleButtonClicked)
在QButtonGroup设置为单选情况下:通过 checkedButton() 方法即可获取选中的按钮对象
self.ButtonGroup.buttonClicked.connect(self.handleButtonClicked)
def handleButtonClicked(self):
self.textEdit.appendPlainText(f"按钮组按键状态改变:{self.ButtonGroup.checkedButton()}")
在QButtonGroup设置为多选情况下:通过 buttons() 方法 查看按钮组中的所有勾选按钮
self.ButtonGroup.buttonClicked.connect(self.handleButtonClicked)
def handleButtonClicked(self):
for i in self.ButtonGroup.buttons(): #buttons():查看所有按钮组中的按钮
self.textEdit.appendPlainText(f"按钮组按键状态改变:ID:{i}")
调用返回的按钮对象的 text() 方法得到勾选按钮文本
self.ButtonGroup.buttonClicked.connect(self.handleButtonClicked)
def handleButtonClicked(self):
for i in self.ButtonGroup.buttons(): #buttons():查看所有按钮组中的按钮
self.textEdit.appendPlainText(f"按钮组按键状态改变:{i.text()}")
通过 checkedId() 方法即可获取选中按钮对象的ID
self.ButtonGroup.buttonClicked.connect(self.handleButtonClicked)
def handleButtonClicked(self):
self.textEdit.appendPlainText(f"按钮组按键状态改变:ID:{self.ButtonGroup.checkedId()}")
对所有该组中的按钮调用 isChecked() 方法 ,来判断。
self.ButtonGroup.buttonClicked.connect(self.handleButtonClicked)
def handleButtonClicked(self):
for i in self.ButtonGroup.buttons(): #buttons():查看所有按钮组中的按钮
self.textEdit.appendPlainText(f"{i.text()}的状态为:{i.isChecked()}")