pyqt5-QCheckBox控件使用介绍

本文详细介绍了如何在PyQt5中创建和使用QCheckBox控件,包括基础工程、功能介绍(如设置图标、快捷键、三态和复选状态)、以及信号处理。展示了如何设置控件状态并连接信号,以便在用户交互时触发特定操作。
摘要由CSDN通过智能技术生成

一、简介

作用:用于给用户提供若干选项中的多选操作,比如:爱好可以有多个 等等。

继承自 QAbstractButton。

1、基础工程

from PyQt5.Qt import *
import sys


app = QApplication(sys.argv)

window = QWidget()

window.setWindowTitle("QCheckBox测试")
window.resize(400, 400)

#*******创建QCheckBox*******开始
cb = QCheckBox("test", window)


#*******创建QCheckBox*******结束

window.show()
sys.exit(app.exec_())

2、测试

在这里插入图片描述

可见上述代码实现了控件的创建。

二、功能介绍

1、常用继承父类操作

  1. api

    api功能
    setIcon(QIcon)设置图标
    setShortcut()设置快捷键

    此外,还可以通过在checkBox设置的文本前添加&符号设置快捷键。

  2. 修改代码

    from PyQt5.Qt import *
    import sys
    
    app = QApplication(sys.argv)
    
    window = QWidget()
    
    window.setWindowTitle("QCheckBox测试")
    window.resize(400, 400)
    
    # *******创建QCheckBox*******开始
    cb = QCheckBox("test", window)
    # cb = QCheckBox("&test", window) # 也可以在此添加&实现快捷操作,快捷操作为 Alt+T
    
    # *******创建QCheckBox*******结束
    
    # *******常用继承父类操作*******开始
    cb.setIcon(QIcon("test.png"))
    cb.setIconSize(QSize(50, 50))
    cb.setShortcut("Alt+T")
    
    # *******常用继承父类操作*******结束
    
    window.show()
    sys.exit(app.exec_())
    
    
  3. 测试结果

    在这里插入图片描述

2、设置是否三态

  1. api

    api功能
    setTristate(bool=True)设置三态(选中、部分选中、未选中)
    isTristate()返回是否支持三态
  2. 应用场景

    是否支持复选框展示三种状态

  3. 修改代码

    from PyQt5.Qt import *
    import sys
    
    app = QApplication(sys.argv)
    
    window = QWidget()
    
    window.setWindowTitle("QCheckBox测试")
    window.resize(400, 400)
    
    # *******创建QCheckBox*******开始
    cb = QCheckBox("test", window)
    # cb = QCheckBox("&test", window) # 也可以在此添加&实现快捷操作,快捷操作为 Alt+T
    
    # *******创建QCheckBox*******结束
    
    # *******常用继承父类操作*******开始
    # cb.setIcon(QIcon("test.png"))
    # cb.setIconSize(QSize(50, 50))
    # cb.setShortcut("Alt+T")
    
    # *******常用继承父类操作*******结束
    
    #*******设置是否三态*******开始
    cb.setTristate(True)    #支持三态
    print("是否支持三态:{}".format(cb.isTristate()))
    
    #*******设置是否三态*******结束
    
    window.show()
    sys.exit(app.exec_())
    
    
  4. 测试结果

    在这里插入图片描述

3、设置复选框状态

  1. api

    api功能
    setCheckState(Qt.CheckState)设置复选框状态
    checkState()返回复选框状态

    状态包含:

    状态意义
    Qt.Unchecked未选中
    Qt.PartiallyChecked部分选中
    Qt.Checked被选中
  2. 应用场景

    给用户多一种选择状态

  3. 修改代码

    from PyQt5.Qt import *
    import sys
    
    app = QApplication(sys.argv)
    
    window = QWidget()
    
    window.setWindowTitle("QCheckBox测试")
    window.resize(400, 400)
    
    # *******创建QCheckBox*******开始
    cb = QCheckBox("test", window)
    # cb = QCheckBox("&test", window) # 也可以在此添加&实现快捷操作,快捷操作为 Alt+T
    
    # *******创建QCheckBox*******结束
    
    # *******常用继承父类操作*******开始
    # cb.setIcon(QIcon("test.png"))
    # cb.setIconSize(QSize(50, 50))
    # cb.setShortcut("Alt+T")
    
    # *******常用继承父类操作*******结束
    
    #*******设置是否三态*******开始
    # cb.setTristate(True)    #支持三态
    # print("是否支持三态:{}".format(cb.isTristate()))
    
    #*******设置是否三态*******结束
    
    #*******设置复选框状态*******开始
    cb.setCheckState(Qt.PartiallyChecked)
    print("复选框状态:{}".format(cb.checkState()))
    #*******设置复选框状态*******结束
    
    window.show()
    sys.exit(app.exec_())
    
    
  4. 测试结果

    在这里插入图片描述


三、信号

  1. api
api功能
stateChanged(int state)选中或清除选中时, 发射此信号
  1. 修改代码

    from PyQt5.Qt import *
    import sys
    
    app = QApplication(sys.argv)
    
    window = QWidget()
    
    window.setWindowTitle("QCheckBox测试")
    window.resize(400, 400)
    
    # *******创建QCheckBox*******开始
    cb = QCheckBox("test", window)
    # cb = QCheckBox("&test", window) # 也可以在此添加&实现快捷操作,快捷操作为 Alt+T
    
    # *******创建QCheckBox*******结束
    
    # *******常用继承父类操作*******开始
    # cb.setIcon(QIcon("test.png"))
    # cb.setIconSize(QSize(50, 50))
    # cb.setShortcut("Alt+T")
    
    # *******常用继承父类操作*******结束
    
    #*******设置是否三态*******开始
    # cb.setTristate(True)    #支持三态
    # print("是否支持三态:{}".format(cb.isTristate()))
    
    #*******设置是否三态*******结束
    
    #*******设置复选框状态*******开始
    # cb.setCheckState(Qt.PartiallyChecked)
    # print("复选框状态:{}".format(cb.checkState()))
    #*******设置复选框状态*******结束
    
    #*******信号测试*******开始
    cb.setTristate(True)
    cb.stateChanged.connect(lambda isChecked:print("复选框状态:{}".format(isChecked)))
    #*******信号测试*******结束
    
    window.show()
    sys.exit(app.exec_())
    
    
  2. 测试结果

    在这里插入图片描述

点击就发射信号,可以看到三种状态:

  • 未选中:0
  • 部分选中:1
  • 选中:2
  • 27
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值