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中的文件和目录操作实现代码
Mar 13 Python
python异步任务队列示例
Apr 01 Python
wxPython学习之主框架实例
Sep 28 Python
十个Python程序员易犯的错误
Dec 15 Python
利用Anaconda完美解决Python 2与python 3的共存问题
May 25 Python
基于python实现简单日历
Jul 28 Python
详解python3中的真值测试
Aug 13 Python
python随机数分布random测试
Aug 27 Python
Django 路由控制的实现代码
Nov 08 Python
python写入文件自动换行问题的方法
Jul 05 Python
Python爬虫之Spider类用法简单介绍
Aug 04 Python
Python list列表删除元素的4种方法
Nov 01 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中防止直接访问或查看或下载config.php文件的方法
2012/07/07 PHP
php数组合并array_merge()函数使用注意事项
2014/06/19 PHP
微信公众平台开发关注及取消关注事件的方法
2014/12/23 PHP
javascript GUID生成器实现代码
2009/10/31 Javascript
jQuery学习3:操作元素属性和特性
2010/02/07 Javascript
javascript实现平滑无缝滚动
2020/08/09 Javascript
js 获取经纬度的实现方法
2016/06/20 Javascript
Jquery组件easyUi实现手风琴(折叠面板)示例
2016/08/23 Javascript
Bootstrap jquery.twbsPagination.js动态页码分页实例代码
2017/02/20 Javascript
温故知新——JavaScript中的字符串连接问题最全总结(推荐)
2017/08/21 Javascript
分分钟学会vue中vuex的应用(入门教程)
2017/09/14 Javascript
jsonp跨域获取数据的基础教程
2018/07/01 Javascript
详解JQuery基础动画操作
2019/04/12 jQuery
vue实现条件叠加搜索的解决方法
2019/05/28 Javascript
vue学习笔记之Vue中css动画原理简单示例
2020/02/29 Javascript
Vue中关闭弹窗组件时销毁并隐藏操作
2020/09/01 Javascript
JavaScript字符串转数字的简单实现方法
2020/11/27 Javascript
[00:10]DOTA2全国高校联赛速递
2018/05/30 DOTA
使用Python生成url短链接的方法
2015/05/04 Python
Python通过正则表达式选取callback的方法
2015/07/18 Python
python实现停车管理系统
2018/11/30 Python
对Python3.x版本print函数左右对齐详解
2018/12/22 Python
python 使用事件对象asyncio.Event来同步协程的操作
2020/05/04 Python
Python decimal模块使用方法详解
2020/06/08 Python
python查询MySQL将数据写入Excel
2020/10/29 Python
Django中template for如何使用方法
2021/01/31 Python
韩国三星集团旗下时尚品牌官网:SSF SHOP
2016/08/02 全球购物
高三自我评价
2014/02/01 职场文书
大学生应聘求职信
2014/05/26 职场文书
护士实习求职信
2014/06/22 职场文书
中专毕业生的自荐书
2014/07/01 职场文书
小学红领巾广播稿(3篇)
2014/09/13 职场文书
2014年话务员工作总结
2014/11/19 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
离婚律师函范本
2015/05/27 职场文书
MySQL Router的安装部署
2021/04/24 MySQL