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中使用ElementTree解析XML示例
Jun 02 Python
详解Django框架中用户的登录和退出的实现
Jul 23 Python
django框架如何集成celery进行开发
May 24 Python
Python读取MRI并显示为灰度图像实例代码
Jan 03 Python
python topN 取最大的N个数或最小的N个数方法
Jun 04 Python
python xlsxwriter创建excel图表的方法
Jun 11 Python
Python3.5内置模块之random模块用法实例分析
Apr 26 Python
Python基础之高级变量类型实例详解
Jan 03 Python
python 弧度与角度互转实例
Apr 15 Python
如何通过python检查文件是否被占用
Dec 18 Python
基于Python实现天天酷跑功能
Jan 06 Python
Python&Matlab实现樱花的绘制
Apr 07 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
深入Memcache的Session数据的多服务器共享详解
2013/06/13 PHP
php实现计数器方法小结
2015/01/05 PHP
laravel 5 实现模板主题功能(续)
2015/03/02 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
PHP判断是否是微信打开还是浏览器打开的方法
2019/02/27 PHP
PHP标准库(PHP SPL)详解
2019/03/16 PHP
js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)
2014/03/14 Javascript
javascript常见用法总结
2014/05/22 Javascript
javascript中日期函数new Date()的浏览器兼容性问题
2015/09/05 Javascript
javascript创建对象、对象继承的实用方式详解
2016/03/08 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
单行 JS 实现移动端金钱格式的输入规则
2017/05/22 Javascript
javascript兼容性(实例讲解)
2017/08/15 Javascript
Bootstrap Table 删除和批量删除
2017/09/22 Javascript
vue-cli 自定义指令directive 添加验证滑块示例
2017/10/19 Javascript
laydate时间日历插件使用方法详解
2018/11/14 Javascript
jQuery实现的简单歌词滚动功能示例
2019/01/07 jQuery
JS实现简单的文字无缝上下滚动功能示例
2019/06/22 Javascript
转换layUI的数据表格中的日期格式方法
2019/09/19 Javascript
JavaScript实现公告栏上下滚动效果
2020/03/13 Javascript
Python合并多个装饰器小技巧
2015/04/28 Python
Django中模版的子目录与include标签的使用方法
2015/07/16 Python
Python简单计算文件MD5值的方法示例
2018/04/11 Python
python中将zip压缩包转为gz.tar的方法
2018/10/18 Python
对numpy下的轴交换transpose和swapaxes的示例解读
2019/06/26 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
在Python中利用pickle保存变量的实例
2019/12/30 Python
python3.8.1+selenium实现登录滑块验证功能
2020/05/22 Python
几款Python编译器比较与推荐(小结)
2020/10/15 Python
Lookfantastic澳大利亚官网:英国知名美妆购物网站
2021/01/07 全球购物
学校门卫工作职责
2013/12/07 职场文书
中国梦团日活动总结
2014/07/07 职场文书
家长学校培训材料
2014/08/20 职场文书
审计班子对照检查材料
2014/08/27 职场文书
高中优秀作文(范文)
2019/08/15 职场文书
OpenCV-Python直方图均衡化实现图像去雾
2021/06/07 Python