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实现可以断点续传和并发的ftp程序
Sep 13 Python
python中import学习备忘笔记
Jan 24 Python
python2.7 json 转换日期的处理的示例
Mar 07 Python
python进行两个表格对比的方法
Jun 27 Python
python自定义函数实现一个数的三次方计算方法
Jan 20 Python
python输出电脑上所有的串口名的方法
Jul 02 Python
Python3 使用selenium插件爬取苏宁商家联系电话
Dec 23 Python
Python多线程threading join和守护线程setDeamon原理详解
Mar 18 Python
实现ECharts双Y轴左右刻度线一致的例子
May 16 Python
Python如何脚本过滤文件中的注释
May 27 Python
10个python爬虫入门实例(小结)
Nov 01 Python
pandas:get_dummies()与pd.factorize()的用法及区别说明
May 21 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 地址栏信息的获取代码
2009/01/07 PHP
php根据某字段对多维数组进行排序的方法
2015/03/07 PHP
php自定义函数实现汉字转换utf8编码的方法
2016/09/29 PHP
分析php://output和php://stdout的区别
2018/05/06 PHP
PHP Swoole异步Redis客户端实现方法示例
2019/10/24 PHP
让FireFox支持innerText的实现代码
2009/12/01 Javascript
扩展jquery实现客户端表格的分页、排序功能代码
2011/03/16 Javascript
使用jQuery仿苹果官网焦点图特效
2014/12/23 Javascript
解决JavaScript数字精度丢失问题的方法
2015/12/03 Javascript
浅谈AngularJs指令之scope属性详解
2016/10/24 Javascript
微信小程序 富文本转文本实例详解
2016/10/24 Javascript
基于vue.js的分页插件详解
2017/11/27 Javascript
JavaScript类数组对象转换为数组对象的方法实例分析
2018/07/24 Javascript
Vue实现商品详情页的评价列表功能
2019/09/04 Javascript
策略模式实现 Vue 动态表单验证的方法
2019/09/16 Javascript
vue element-ui实现动态面包屑导航
2019/12/23 Javascript
Python中os.path用法分析
2015/01/15 Python
python通过wxPython打开一个音频文件并播放的方法
2015/03/25 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
2017/08/30 Python
python web基础之加载静态文件实例
2018/03/20 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
2018/09/27 Python
python3中关于excel追加写入格式被覆盖问题(实例代码)
2020/01/10 Python
django实现更改数据库某个字段以及字段段内数据
2020/03/31 Python
python将音频进行变速的操作方法
2020/04/08 Python
python轮询机制控制led实例
2020/05/03 Python
Linux内核的同步机制是什么?主要有哪几种内核锁
2013/01/03 面试题
英语专业学生的自我评价
2013/12/30 职场文书
校园十佳歌手策划书
2014/01/22 职场文书
我爱我的祖国演讲稿
2014/05/04 职场文书
2015元旦标语横幅
2014/12/09 职场文书
春秋淹城导游词
2015/02/11 职场文书
2015年党员发展工作总结
2015/05/13 职场文书
2016年领导干部正风肃纪心得体会
2015/10/09 职场文书
2016年教师师德师风承诺书
2016/03/25 职场文书
感恩信:写给爸爸妈妈的一封感谢信
2019/09/12 职场文书
python数字类型和占位符详情
2022/03/13 Python