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回调函数用法实例分析
May 09 Python
详解Python Socket网络编程
Jan 05 Python
举例讲解如何在Python编程中进行迭代和遍历
Jan 19 Python
Python程序中设置HTTP代理
Nov 06 Python
Python 中字符串拼接的多种方法
Jul 30 Python
Python实现深度遍历和广度遍历的方法
Jan 22 Python
详解Python做一个名片管理系统
Mar 14 Python
浅谈python3中input输入的使用
Aug 02 Python
用python写测试数据文件过程解析
Sep 25 Python
python中对列表的删除和添加方法详解
Feb 24 Python
Python中非常使用的6种基本变量的操作与技巧
Mar 22 Python
代码复现python目标检测yolo3详解预测
May 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
用Flash图形化数据(二)
2006/10/09 PHP
解析PHP中的内存管理,PHP动态分配和释放内存
2013/06/28 PHP
PHP、Nginx、Apache中禁止网页被iframe引用的方法
2020/10/01 PHP
PHP输出英文时间日期的安全方法(RFC 1123格式)
2014/06/13 PHP
jQuery获取json后使用zy_tmpl生成下拉菜单
2015/03/27 PHP
php替换字符串中间字符为省略号的方法
2015/05/04 PHP
WordPress用户登录框密码的隐藏与部分显示技巧
2015/12/31 PHP
基于thinkPHP类的插入数据库操作功能示例
2017/01/06 PHP
html文件中jquery与velocity变量中的$冲突的解决方法
2013/11/01 Javascript
JS高级调试技巧:捕获和分析 JavaScript Error详解
2014/03/16 Javascript
jQuery实现简单的点赞效果
2020/05/29 Javascript
第一次接触神奇的Bootstrap导航条
2016/08/09 Javascript
Jquery组件easyUi实现手风琴(折叠面板)示例
2016/08/23 Javascript
简单明了区分escape、encodeURI和encodeURIComponent
2018/05/26 Javascript
Python collections模块实例讲解
2014/04/07 Python
Python写的PHPMyAdmin暴力破解工具代码
2014/08/06 Python
使用matplotlib画散点图的方法
2018/05/25 Python
使用Python写一个量化股票提醒系统
2018/08/22 Python
Python3基础教程之递归函数简单示例
2019/06/07 Python
使用Python制作表情包实现换脸功能
2019/07/19 Python
微信小程序python用户认证的实现
2019/07/29 Python
获取Pytorch中间某一层权重或者特征的例子
2019/08/17 Python
jupyter notebook 多行输出实例
2020/04/09 Python
Python如何使用vars返回对象的属性列表
2020/10/17 Python
python中封包建立过程实例
2021/02/18 Python
用HTML5制作数字时钟的教程
2015/05/11 HTML / CSS
Qoo10台湾站:亚洲领先的在线市场
2018/05/15 全球购物
Bibloo匈牙利:女装、男装、童装及鞋子和配饰
2019/04/14 全球购物
本科生学习总结的自我评价
2013/10/02 职场文书
母亲80寿诞答谢词
2014/01/16 职场文书
2014年两会学习心得体会
2014/03/17 职场文书
工伤事故赔偿协议书
2014/10/27 职场文书
幼儿教师辞职信
2015/02/27 职场文书
小学生组织委员竞选稿
2015/11/21 职场文书
redis客户端实现高可用读写分离的方式详解
2021/07/04 Redis
Linux下使用C语言代码搭建一个简单的HTTP服务器
2022/04/13 Servers