python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例


Posted in Python onFebruary 28, 2020

QCheckBox类中常用方法如表

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

三态复选框的三种状态

名称 含义
Qt.Checked 2 组件没有被选中(默认)
Qt.PartiallyChecked 1 组件被半选中
Qt.Unchecked 0 组件被选中

QCheckBox按钮的使用实例

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_())

效果图如下

python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例

QCheckBox代码分析:

在这个例子中,将三个复选框添加到一个水平布局管理器中,并添加到一个QGroupBox组中

groupBox = QGroupBox("Checkboxes")
 groupBox.setFlat(False)

将三个复选框的stateChanged信号都连接到槽函数stateChanged(),使用landba的方式传递对象给槽函数

当QCheckBox状态改变时发射stateChanged信号,当信号发生改变时触发自定义的槽函数btnstate()

self.checkBox1.stateChanged.connect(lambda: self.btnstate(self.checkBox1))
self.checkBox2.toggled.connect(lambda: self.btnstate(self.checkBox2))
self.checkBox3.stateChanged.connect(lambda: self.btnstate(self.checkBox3))

实例化对象CheckBox1和CheckBox2两个对象,将CheckBox1的状态设置为选中,为CheckBox1设置为快捷键,使用‘&'符号,则可以通过快捷键Alt+C选中checkbox1复选框

self.checkBox1 = QCheckBox("&Checkbox1")
self.checkBox1.setChecked(True)

使用按钮的isChecked()方法,判断复选框是否被选中,其核心代码是:

chk1Status = self.checkBox1.text() + ", isChecked=" + str(self.checkBox1.isChecked()) + ', chekState=' + str(
      self.checkBox1.checkState()) + "\n"

实例化一个QCheckBox类的对象checkBox3,然后使用setTristate()开启三态模式,然后设置为半选状态并连接槽函数

self.checkBox3 = QCheckBox("tristateBox")
self.checkBox3.setTristate(True)
self.checkBox3.setCheckState(Qt.PartiallyChecked)
self.checkBox3.stateChanged.connect(lambda: self.btnstate(self.checkBox3))

本文详细讲解了PyQt5复选框控件QCheckBox详细使用方法与实例,更多关于PyQt5控件知识请查看下面的相关链接

Python 相关文章推荐
python正则表达式re模块详细介绍
May 29 Python
详解Python的Flask框架中生成SECRET_KEY密钥的方法
Jun 07 Python
Python3实现的字典遍历操作详解
Apr 18 Python
python 3.6.2 安装配置方法图文教程
Sep 18 Python
python学生信息管理系统(初级版)
Oct 17 Python
说说如何遍历Python列表的方法示例
Feb 11 Python
用Anaconda安装本地python包的方法及路径问题(图文)
Jul 16 Python
python实现DEM数据的阴影生成的方法
Jul 23 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
Oct 16 Python
python图的深度优先和广度优先算法实例分析
Oct 26 Python
查看端口并杀进程python脚本代码
Dec 17 Python
进行数据处理的6个 Python 代码块分享
Apr 06 Python
Python post请求实现代码实例
Feb 28 #Python
python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例
Feb 28 #Python
Python接口测试get请求过程详解
Feb 28 #Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
Feb 28 #Python
Python爬取365好书中小说代码实例
Feb 28 #Python
Python反爬虫伪装浏览器进行爬虫
Feb 28 #Python
使用wxpy实现自动发送微信消息功能
Feb 28 #Python
You might like
PHP4之真OO
2006/10/09 PHP
php面向对象的用户登录身份验证
2017/06/08 PHP
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
javascript 小数乘法结果错误的处理方法
2016/07/28 Javascript
jQuery树控件zTree使用方法详解(一)
2017/02/28 Javascript
微信小程序 五星评分的实现实例
2017/08/04 Javascript
JavaScript定义函数的三种实现方法
2017/09/23 Javascript
vue移动端实现下拉刷新
2018/04/22 Javascript
Vue props用法详解(小结)
2018/07/03 Javascript
原生JS实现的轮播图功能详解
2018/08/06 Javascript
webpack 从指定入口文件中提取公共文件的方法
2018/11/13 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
为什么Vue3.0使用Proxy实现数据监听(defineProperty表示不背这个锅)
2019/10/14 Javascript
JS求解两数之和算法详解
2020/04/28 Javascript
vue3.0实现插件封装
2020/12/14 Vue.js
用smtplib和email封装python发送邮件模块类分享
2014/02/17 Python
使用python编写批量卸载手机中安装的android应用脚本
2014/07/21 Python
Python实现类似jQuery使用中的链式调用的示例
2016/06/16 Python
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
python数字图像处理之高级形态学处理
2018/04/27 Python
Python 实现OpenCV格式和PIL.Image格式互转
2020/01/09 Python
使用Python脚本从文件读取数据代码实例
2020/01/19 Python
Joie官方网上商店:购买服装和女装配饰
2018/06/05 全球购物
英国在线自行车店:Merlin Cycles
2018/08/20 全球购物
BISSELL官网:北美吸尘器第一品牌
2019/03/14 全球购物
安全生产责任书
2014/03/12 职场文书
任命书格式
2014/06/05 职场文书
电子商务优秀毕业生求职信
2014/07/11 职场文书
高中生国庆节演讲稿范文2014
2014/09/21 职场文书
新党章的学习心得体会
2014/11/07 职场文书
杜甫草堂导游词
2015/02/03 职场文书
公务员个人总结
2015/02/12 职场文书
小学生作文写作技巧100例,非常实用!
2019/07/08 职场文书
Python Django搭建文件下载服务器的实现
2021/05/10 Python
美元符号 $
2022/02/17 杂记
船舶调度指挥系统——助力智慧海事
2022/02/18 无线电