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写的一个squid访问日志分析的小程序
Sep 17 Python
python网络编程实例简析
Sep 26 Python
python在控制台输出进度条的方法
Jun 20 Python
python字符串,数值计算
Oct 05 Python
深入理解NumPy简明教程---数组1
Dec 17 Python
Python基于动态规划算法解决01背包问题实例
Dec 06 Python
Python面向对象程序设计类的封装与继承用法示例
Apr 12 Python
详解PyCharm安装MicroPython插件的教程
Jun 24 Python
Django  ORM 练习题及答案
Jul 19 Python
python3 requests库文件上传与下载实现详解
Aug 22 Python
Python可变参数会自动填充前面的默认同名参数实例
Nov 18 Python
python和js交互调用的方法
Jun 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
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
ThinkPHP5.1表单令牌Token失效问题的解决
2019/03/22 PHP
向fckeditor编辑器插入指定代码的方法
2007/05/25 Javascript
Jquery 组合form元素为json格式,asp.net反序列化
2009/07/09 Javascript
11款新鲜的jQuery插件[附所有demo下载]
2011/01/24 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
2016/01/26 Javascript
JS添加删除DIV的简单实例
2016/07/08 Javascript
AngularJS入门教程之双向绑定详解
2016/08/18 Javascript
JS实现的手机端精简幻灯片效果
2016/09/05 Javascript
详解EasyUi控件中的Datagrid
2017/08/23 Javascript
CheckBox多选取值及判断CheckBox选中是否为空的实例
2017/10/31 Javascript
详解vue.js根据不同环境(正式、测试)打包到不同目录
2018/07/13 Javascript
NodeJs 实现简单WebSocket即时通讯的示例代码
2019/08/05 NodeJs
Vue两种组件类型:递归组件和动态组件的用法
2020/08/06 Javascript
关于Python元祖,列表,字典,集合的比较
2017/01/06 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
2019/06/05 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
python mysql 字段与关键字冲突的解决方式
2020/03/02 Python
Python3 filecmp模块测试比较文件原理解析
2020/03/23 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
2020/05/12 Python
python 使用三引号时容易犯的小错误
2020/10/21 Python
英国汽车座椅和婴儿车购物网站:Uber Kids
2017/04/19 全球购物
维氏瑞士军刀英国网站:Victorinox英国
2019/07/04 全球购物
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
南京某软件公司的.net面试题
2015/11/30 面试题
大学生个人求职信范文
2013/09/21 职场文书
社团文化节策划书
2014/02/01 职场文书
竞聘上岗演讲
2014/05/19 职场文书
职业道德模范事迹材料
2014/08/24 职场文书
2014企业领导班子四风对照检查材料思想汇报
2014/09/17 职场文书
学校查摆问题整改措施
2014/09/28 职场文书
CSS几步实现赛博朋克2077风格视觉效果
2021/06/16 HTML / CSS
Python Pandas pandas.read_sql_query函数实例用法分析
2021/06/21 Python
MySQL和Oracle批量插入SQL的通用写法示例
2021/11/17 MySQL