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用装饰器自动注册Tornado路由详解
Feb 14 Python
python学习笔记--将python源文件打包成exe文件(pyinstaller)
May 26 Python
Python从使用线程到使用async/await的深入讲解
Sep 16 Python
关于python之字典的嵌套,递归调用方法
Jan 21 Python
Python配置虚拟环境图文步骤
May 20 Python
利用python list完成最简单的DB连接池方法
Aug 09 Python
Django通用类视图实现忘记密码重置密码功能示例
Dec 17 Python
使用豆瓣源来安装python中的第三方库方法
Jan 26 Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
Feb 05 Python
python中threading和queue库实现多线程编程
Feb 06 Python
一劳永逸彻底解决pip install慢的办法
May 24 Python
基于Python实现将列表数据生成折线图
Mar 23 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如何将log信息写入服务器中的log文件
2015/07/29 PHP
php表单处理操作
2017/11/16 PHP
PHP实现的用户注册表单验证功能简单示例
2019/02/25 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
Alliance vs AM BO3 第二场2.13
2021/03/10 DOTA
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
在模板页面的js使用办法
2010/04/01 Javascript
js showModalDialog弹出窗口实例详解
2014/01/07 Javascript
jquery检测input checked 控件是否被选中的方法
2014/03/26 Javascript
jQuery实现首页顶部可伸缩广告特效代码
2015/04/15 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
2015/10/25 Javascript
JS封装的选项卡TAB切换效果示例
2016/09/20 Javascript
详解浏览器渲染页面过程
2017/02/09 Javascript
jquery横向纵向鼠标滚轮全屏切换
2017/02/27 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
2017/07/03 Javascript
javascript编程开发中取色器及封装$函数用法示例
2017/08/09 Javascript
JavaSctit 利用FileReader和滤镜上传图片预览功能
2017/09/05 Javascript
Angular js 实现添加用户、修改密码、敏感字、下拉菜单的综合操作方法
2017/10/24 Javascript
react native 文字轮播的实现示例
2018/07/27 Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
2019/04/17 Javascript
JS正则表达式常见函数与用法小结
2020/04/13 Javascript
Python构造函数及解构函数介绍
2015/02/26 Python
python实现中文输出的两种方法
2015/05/09 Python
Python语言实现获取主机名根据端口杀死进程
2016/03/31 Python
Python使用flask框架操作sqlite3的两种方式
2018/01/31 Python
Python3实现的判断回文链表算法示例
2019/03/08 Python
PyQt5 实现字体大小自适应分辨率的方法
2019/06/18 Python
pycharm新建一个python工程步骤
2019/07/16 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
2020/02/14 Python
Python matplotlib实时画图案例
2020/04/23 Python
解决Python 函数声明先后顺序出现的问题
2020/09/02 Python
Python实现粒子群算法的示例
2021/02/14 Python
eVitamins日本:在线购买折扣维生素、补品和草药
2019/04/04 全球购物
九州传奇上机题
2014/07/10 面试题
护士节活动总结
2014/08/29 职场文书
Python面向对象之成员相关知识总结
2021/06/24 Python