Pyside6-第四篇-QCheckBox复选框

简介: Pyside6-第四篇-QCheckBox复选框

今天是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

目录
打赏
0
0
0
0
8
分享
相关文章
Pyside6-第十三篇-布局(最后一章废话-理论篇)
Pyside6-第十三篇-布局(最后一章废话-理论篇)
890 0
Pyside6-第七篇-QLineEdit文本行编辑(内设案例)
Pyside6-第七篇-QLineEdit文本行编辑(内设案例)
1301 0
Pyside6-第八篇-QLabel文本标签
Pyside6-第八篇-QLabel文本标签
645 0
Pyside6-第十篇-纯文本QPlainTextEdit
Pyside6-第十篇-纯文本QPlainTextEdit
781 0
Pyside6-第十篇-纯文本QPlainTextEdit
Pyside6-第一篇-创建第一个窗口
Pyside6-第一篇-创建第一个窗口
572 0
|
9月前
|
Python实用记录(十五):PyQt/PySide6打包成exe,精简版(nuitka/pyinstaller/auto-py-to-exe)
本文介绍了使用Nuitka、PyInstaller和auto-py-to-exe三种工具将Python的PyQt/PySide6应用打包成exe文件的方法。提供了详细的安装步骤、打包命令和参数说明,适合新手学习和实践。
2377 0
|
9月前
|
Python实用记录(十六):PyQt/PySide6联动VSCode便捷操作指南
本文提供了一份详细的PySide6与VSCode联动的操作指南,包括安装配置VSCode、安装必要的扩展、配置扩展以及编辑和运行PySide6项目。文中还提到了相关工具如uic.exe、rcc.exe和designer.exe的用途,并提供了进一步学习的资源。
1375 1
Python实用记录(十六):PyQt/PySide6联动VSCode便捷操作指南
Pyside6-第二篇-QPushButton一个普通按钮
Pyside6-第二篇-QPushButton一个普通按钮
451 0
Pyside6-第六篇-各按钮的信号与槽
Pyside6-第六篇-各按钮的信号与槽
440 0
Pyside6-第九篇-QTextEdit多行文本编辑器
Pyside6-第九篇-QTextEdit多行文本编辑器
622 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问