鱼C论坛

 找回密码
 立即注册
查看: 2148|回复: 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        组件被选中

示例:
  1. import sys
  2. from PyQt5.QtCore import *
  3. from PyQt5.QtGui import *
  4. from PyQt5.QtWidgets import *
  5. from PyQt5.QtCore import Qt

  6. class CheckBoxDemo(QWidget):

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

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

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

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

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

  24.         #水平布局
  25.         layout = QHBoxLayout()
  26.         #控件添加到水平布局中
  27.         layout.addWidget(self.checkBox1)
  28.         layout.addWidget(self.checkBox2)
  29.         layout.addWidget(self.checkBox3)

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

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

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

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


  49. if __name__ == '__main__':
  50.     app = QApplication(sys.argv)
  51.     checkboxDemo = CheckBoxDemo()
  52.     checkboxDemo.show()
  53.     sys.exit(app.exec_())
复制代码

评分

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

查看全部评分

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-19 23:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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