鱼C论坛

 找回密码
 立即注册
查看: 1838|回复: 0

[技术交流] PyQt5——QCheckBox

[复制链接]
发表于 2019-12-8 18:18:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 一个账号 于 2019-12-8 18:20 编辑

PyQt5——QCheckBox


常用方法
setChecked()              设置复选框的状态,设置为True表示选中,False表示取消选中的复选框
setText()                    设置复选框的显示文本
text()                         返回复选框的显示文本
isChecked()                检查复选框是否被选中
setTriState()               设置复选框为一个三态复选框
setCheckState()          三态复选框的状态设置,具体设置可以见下表

三态复选框的三种状态
名称                            值                含义
Qt.Checked                   2        组件没有被选中(默认)
Qt.PartiallyChecked        1        组件被半选中
Qt.Unchecked                0        组件被选中

示例:
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt

class CheckBoxDemo(QWidget):

    def __init__(self, parent=None):
        super(CheckBoxDemo, self).__init__(parent)

        #创建一个GroupBox组
        groupBox = QGroupBox("Checkboxes")
        groupBox.setFlat(False)

        #创建复选框1,并默认选中,当状态改变时信号触发事件
        self.checkBox1 = QCheckBox("&Checkbox1")
        self.checkBox1.setChecked(True)
        self.checkBox1.stateChanged.connect(lambda: self.btnstate(self.checkBox1))

        #创建复选框,标记状态改变时信号触发事件
        self.checkBox2 = QCheckBox("Checkbox2")
        self.checkBox2.toggled.connect(lambda: self.btnstate(self.checkBox2))

        #创建复选框3,设置为3状态,设置默认选中状态为半选状态,当状态改变时信号触发事件
        self.checkBox3 = QCheckBox("tristateBox")
        self.checkBox3.setTristate(True)
        self.checkBox3.setCheckState(Qt.PartiallyChecked)
        self.checkBox3.stateChanged.connect(lambda: self.btnstate(self.checkBox3))

        #水平布局
        layout = QHBoxLayout()
        #控件添加到水平布局中
        layout.addWidget(self.checkBox1)
        layout.addWidget(self.checkBox2)
        layout.addWidget(self.checkBox3)

        #设置QGroupBox组的布局方式
        groupBox.setLayout(layout)

        #设置主界面布局垂直布局
        mainLayout = QVBoxLayout()
        #QgroupBox的控件添加到主界面布局中
        mainLayout.addWidget(groupBox)

        #设置主界面布局
        self.setLayout(mainLayout)
        #设置主界面标题
        self.setWindowTitle("checkbox demo")

    #输出三个复选框当前的状态,0选中,1半选,2没选中
    def btnstate(self, btn):
        chk1Status = self.checkBox1.text() + ", isChecked=" + str(self.checkBox1.isChecked()) + ', chekState=' + str(
            self.checkBox1.checkState()) + "\n"
        chk2Status = self.checkBox2.text() + ", isChecked=" + str(self.checkBox2.isChecked()) + ', checkState=' + str(
            self.checkBox2.checkState()) + "\n"
        chk3Status = self.checkBox3.text() + ", isChecked=" + str(self.checkBox3.isChecked()) + ', checkState=' + str(
            self.checkBox3.checkState()) + "\n"
        print(chk1Status + chk2Status + chk3Status)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    checkboxDemo = CheckBoxDemo()
    checkboxDemo.show()
    sys.exit(app.exec_())

评分

参与人数 1鱼币 +1 收起 理由
诸己h + 1 鱼C有你更精彩^_^

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 13:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表