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实现获取序列中最小的几个元素
Sep 25 Python
Python判断文件和文件夹是否存在的方法
May 21 Python
python黑魔法之参数传递
Feb 12 Python
使用python实现接口的方法
Jul 07 Python
Python+matplotlib+numpy实现在不同平面的二维条形图
Jan 02 Python
python爱心表白 每天都是浪漫七夕!
Aug 18 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
Oct 14 Python
python实现简单聊天室功能 可以私聊
Jul 12 Python
Python学习笔记之字符串和字符串方法实例详解
Aug 22 Python
Python 添加文件注释和函数注释操作
Aug 09 Python
Python eval函数原理及用法解析
Nov 14 Python
Python 随机按键模拟2小时
Dec 30 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数组函数序列之array_key_exists() - 查找数组键名是否存在
2011/10/29 PHP
php实现建立多层级目录的方法
2014/07/19 PHP
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
php中文验证码实现方法
2015/06/18 PHP
详解PHP的Yii框架中扩展的安装与使用
2016/04/01 PHP
PHP请求远程地址设置超时时间的解决方法
2016/10/29 PHP
php 中奖概率算法实现代码
2017/01/25 PHP
php 一维数组的循环遍历实现代码
2017/04/10 PHP
Z-Blog中用到的js代码
2007/03/15 Javascript
模仿JQuery.extend函数扩展自己对象的js代码
2009/12/09 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
2013/08/21 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
详解JavaScript中的blink()方法的使用
2015/06/08 Javascript
JavaScript中的toUTCString()方法使用详解
2015/06/12 Javascript
XML文件转化成NSData对象的方法
2015/08/12 Javascript
AngularJs中route的使用方法和配置
2016/02/04 Javascript
AngularJS中的表单简单入门
2016/07/28 Javascript
JQueryMiniUI按照时间进行查询的实现方法
2017/06/07 jQuery
jQuery实现上下滚动公告栏详细代码
2018/11/21 jQuery
Python设计模式之代理模式简单示例
2018/01/09 Python
Python使用tkinter库实现文本显示用户输入功能示例
2018/05/30 Python
linux安装python修改默认python版本方法
2019/03/31 Python
Flask框架学习笔记之消息提示与异常处理操作详解
2019/08/15 Python
python实现画循环圆
2019/11/23 Python
HTML5标签与HTML4标签的区别示例介绍
2013/07/18 HTML / CSS
美国最大的宠物药店:1-800-PetMeds
2016/10/02 全球购物
Champion澳大利亚官网:美国冠军运动服装
2018/05/07 全球购物
final, finally, finalize的区别
2012/03/01 面试题
宿舍保安职务说明书
2014/02/25 职场文书
新教师培训心得体会
2014/09/02 职场文书
民政局办理协议离婚(范本)
2014/10/25 职场文书
初中英语教师个人工作总结
2015/02/09 职场文书
2015国际残疾人日活动总结
2015/03/24 职场文书
2015年安全月活动总结
2015/03/26 职场文书
毕业论文指导老师意见
2015/06/04 职场文书
三好学生竞选稿范文
2019/08/21 职场文书