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 Web框架Flask中使用新浪SAE云存储实例
Feb 08 Python
Python中解析JSON并同时进行自定义编码处理实例
Feb 08 Python
回调函数的意义以及python实现实例
Jun 20 Python
Django项目中包含多个应用时对url的配置方法
May 30 Python
用xpath获取指定标签下的所有text的实例
Jan 02 Python
Python这样操作能存储100多万行的xlsx文件
Apr 16 Python
python 使用装饰器并记录log的示例代码
Jul 12 Python
Django 模型类(models.py)的定义详解
Jul 19 Python
PyTorch实现AlexNet示例
Jan 14 Python
TensorFlow:将ckpt文件固化成pb文件教程
Feb 11 Python
经验丰富程序员才知道的8种高级Python技巧
Jul 27 Python
Spy++的使用方法及下载教程
Jan 29 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 Mysql类 可以参考学习熟悉下
2009/06/21 PHP
有关JSON以及JSON在PHP中的应用
2010/04/09 PHP
浅谈PHP调用Webservice思路及源码分享
2014/06/04 PHP
解密ThinkPHP3.1.2版本之独立分组功能应用
2014/06/19 PHP
如何使用PHP给图片加水印
2016/10/12 PHP
详解Laravel设置多态关系模型别名的方式
2019/10/17 PHP
通过url查找a元素应用案例
2014/04/29 Javascript
PHP使用方法重载实现动态创建属性的get和set方法
2014/11/17 Javascript
jQuery类选择器用法实例
2014/12/23 Javascript
javascript实现密码验证
2015/11/10 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
2016/10/10 Javascript
JSON与js对象序列化实例详解
2017/03/16 Javascript
详解Vue-cli代理解决跨域问题
2017/09/27 Javascript
实现div滚动条默认最底部以及默认最右边的示例代码
2017/11/15 Javascript
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
Element UI框架中巧用树选择器的实现
2018/12/12 Javascript
JS函数节流和防抖之间的区分和实现详解
2019/01/11 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
2020/08/25 Javascript
详解Python使用simplejson模块解析JSON的方法
2016/03/24 Python
python3实现暴力穷举博客园密码
2016/06/19 Python
Python的requests网络编程包使用教程
2016/07/11 Python
Python单体模式的几种常见实现方法详解
2017/07/28 Python
Python3.6连接Oracle数据库的方法详解
2018/05/18 Python
django中上传图片分页三级联动效果的实现代码
2019/08/30 Python
Django Form and ModelForm的区别与使用
2019/12/06 Python
Sentry错误日志监控使用方法解析
2020/11/12 Python
Python图像识别+KNN求解数独的实现
2020/11/13 Python
使用纯HTML5编写一款网页上的时钟的代码分享
2015/11/16 HTML / CSS
加拿大租车网站:Enterprise Rent-A-Car
2018/07/26 全球购物
企业整改报告范文
2014/11/08 职场文书
计生个人工作总结
2015/02/28 职场文书
获奖感言一句话
2015/07/31 职场文书
2016新年致辞
2015/08/01 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书
MySQL GTID复制的具体使用
2022/05/20 MySQL
详解Spring Security如何在权限中使用通配符
2022/06/28 Java/Android