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里使用正则表达式的全匹配功能
Oct 19 Python
Python 爬虫之Beautiful Soup模块使用指南
Jul 05 Python
Python中print和return的作用及区别解析
May 05 Python
详解python中的index函数用法
Aug 06 Python
对django2.0 关联表的必填on_delete参数的含义解析
Aug 09 Python
Python3自定义json逐层解析器代码
May 11 Python
python中wx模块的具体使用方法
May 15 Python
python3.6.8 + pycharm + PyQt5 环境搭建的图文教程
Jun 11 Python
numpy中生成随机数的几种常用函数(小结)
Aug 18 Python
Selenium关闭INFO:CONSOLE提示的解决
Dec 07 Python
Python中的面向接口编程示例详解
Jan 17 Python
Python爬虫:从m3u8文件里提取小视频的正确操作
May 14 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
PHP array操作10个小技巧分享
2011/06/23 PHP
PHP数组操作――获取数组最后一个值的方法
2015/04/14 PHP
thinkphp框架下404页面设置 仅三步
2016/05/14 PHP
Javascript操纵Cookie实现购物车程序
2006/11/23 Javascript
javascript 动态生成私有变量访问器
2009/12/06 Javascript
jQuery第三课 修改元素属性及内容的代码
2010/03/14 Javascript
jQuery Mobile页面跳转后未加载外部JS原因分析及解决
2013/03/18 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
2014/10/20 Javascript
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
jQuery实现移动端滑块拖动选择数字效果
2015/12/24 Javascript
简单谈谈javascript中this的隐式绑定
2016/02/22 Javascript
jQuery实现简易的输入框字数计数功能示例
2017/01/16 Javascript
jQuery插件HighCharts绘制2D金字塔图效果示例【附demo源码下载】
2017/03/09 Javascript
NodeJs的fs读写删除移动监听
2017/04/28 NodeJs
echarts鼠标覆盖高亮显示节点及关系名称详解
2018/03/17 Javascript
JS简单生成由字母数字组合随机字符串示例
2018/05/25 Javascript
angularJS实现不同视图同步刷新详解
2018/10/09 Javascript
vue滚动插件better-scroll使用详解
2019/10/18 Javascript
Angular单元测试之事件触发的实现
2020/01/20 Javascript
Node.js API详解之 os模块用法实例分析
2020/05/06 Javascript
Vue Elenent实现表格相同数据列合并
2020/11/30 Vue.js
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
Python实现给文件添加内容及得到文件信息的方法
2015/05/28 Python
通过Python实现自动填写调查问卷
2017/09/06 Python
python获取中文字符串长度的方法
2018/11/14 Python
python操作excel让工作自动化
2019/08/09 Python
Python命名空间及作用域原理实例解析
2020/08/12 Python
不用游标的SQL语句有哪些
2012/09/07 面试题
出口公司经理求职简历中的自我评价
2013/10/13 职场文书
尽职尽责村干部自我鉴定
2014/01/23 职场文书
九年级政治教学反思
2014/02/06 职场文书
初中三年毕业生的自我评价分享
2014/02/14 职场文书
出国留学计划书
2014/04/27 职场文书
2019新学期家长会工作计划
2019/08/21 职场文书
互联网创业商业模式以及赚钱法则有哪些?
2019/10/12 职场文书
一文教你快速生成MySQL数据库关系图
2022/06/28 Redis