今天是Pyside6的第四篇内容。一起来看复选框。
QCheckBox。
class QCheckBox(QAbstractButton): """ QCheckBox(self, parent: Optional[PySide6.QtWidgets.QWidget] = None) -> None QCheckBox(self, text: str, parent: Optional[PySide6.QtWidgets.QWidget] = None) -> None """
❝话不多说,直接看源码怎么写。
❞
两种写法
from PySide6.QtWidgets import QApplication, QWidget, QCheckBox import sys class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 300, 200) self.setWindowTitle('QToolButton') btn_check_man = QCheckBox(self) btn_check_man.setText("男") btn_check_man.move(20, 20) btn_check_women = QCheckBox("女", self) btn_check_women.move(20, 40) self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec())
什么是复选?看上面两个勾就知道了。两个勾是我手动打上的。
看到了QCheckBox的父类也是QAbstractButton。所以很多方法跟前面两篇类似。本章稍微介绍一下。
主要介绍一下,它的其他常用函数。
设置图标
from PySide6.QtGui import QIcon from PySide6.QtWidgets import QApplication, QWidget, QCheckBox import sys class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 300, 200) self.setWindowTitle('QToolButton') btn_check_man = QCheckBox(self) btn_check_man.setText("男") btn_check_man.move(20, 20) btn_check_women = QCheckBox("女", self) btn_check_women.setIcon(QIcon("图标.png")) btn_check_women.move(20, 40) self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec())
默认选择.setChecked
顾名思义,运行即选择。
❝True即为选择,False即为不选择,默认False
❞
from PySide6.QtGui import QIcon from PySide6.QtWidgets import QApplication, QWidget, QCheckBox import sys class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 300, 200) self.setWindowTitle('QToolButton') btn_check_man = QCheckBox(self) btn_check_man.setText("男") btn_check_man.move(20, 20) btn_check_women = QCheckBox("女", self) btn_check_women.setIcon(QIcon("图标.png")) btn_check_women.setChecked(True) btn_check_women.move(20, 40) self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec())
是否启用.setEnabled禁用.setDisabled
❝.setEnabledTrue即为启用,默认就是启用,False即为不启用,.setDisabled默认False,不禁用,禁用后为"灰色",无法选择。
❞
from PySide6.QtGui import QIcon from PySide6.QtWidgets import QApplication, QWidget, QCheckBox import sys class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 300, 200) self.setWindowTitle('QToolButton') btn_check_man = QCheckBox(self) btn_check_man.setText("男") btn_check_man.setEnabled(True) # 是否启用 btn_check_man.move(20, 20) btn_check_women = QCheckBox("女", self) btn_check_women.setIcon(QIcon("图标.png")) btn_check_women.setChecked(True) # 默认选择 btn_check_women.setDisabled(True) # 是否禁用 btn_check_women.move(20, 40) self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec())
切换状态.toggle
❝这个个人觉得还是比较的鸡肋的,当不为选中的时候,使用这个函数时,运行后即为选中状态。
❞
支持三态.setTristate
❝就是有三种状态,勾选,没选中,部分选中
❞
from PySide6.QtWidgets import QApplication, QWidget, QCheckBox import sys class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): btn_check_read = QCheckBox("已阅读", self) btn_check_read.setTristate(True) # 设置支持三态 btn_check_read.move(20, 60) self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec())
另一种设置状态方式.setCheckState
❝Qt.Checked选中,Qt.Unchecke不选中,Qt.PartiallyChecked部分选中
❞
from PySide6.QtCore import Qt from PySide6.QtGui import QIcon from PySide6.QtWidgets import QApplication, QWidget, QCheckBox import sys class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): btn_check_play = QCheckBox("是否已买单", self) # Qt.Unchecke不选中,Qt.PartiallyChecked部分选中 btn_check_play.setCheckState(Qt.Checked) btn_check_play.move(20, 80) self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec())
代码已经更新至:https://gitee.com/qinganan_admin/Pyside6_Information