复选框我们并不陌生,在填写问卷的时候,肯定会出现多选的问题,这个时候用到的就是QCheckBox复选框。用于给用户提供多选操作。

多选复选框示例

创建QCheckBox

  • QCheckBox(parent: QWidget = None)
  • QCheckBox(str, parent: QWidget = None)

常用继承父类操作

  • setIcon(QIcon):设置图标
  • setShortcut():设置快捷键,实现快速选中或者取消选中

是否三态setTristate

需要说明的是,复选框不是纯粹的选中或者没选中这两种状态。

  • Qt.Unchecked:该项目未选中
  • Qt.PartiallyChecked:部分选中
  • Qt.Checked:真的被选中

如何设置三态?

  • setsetTristate(bool):当bool为True时,则为三态,否则为二态。

复选框的三种状态

设置复选框的状态setCheckedState

由于复选框不是只有选中和没选中两种状态,所以用“状态”来描述而不是用选中来描述。

  • setCheckedState(Qt.CheckState):用来设置复选框的状态

    Qt.CheckState就是上面的Qt.Unchecked、Qt.PartiallyChecked、Qt.Checked

  • checkState():用来获取复选框的状态

信号stateChanged

继承自QAbstractButton,它的信号都可以用。这里不再赘述,可以去之前的文章里面查看:

基类QAbstractButton的八大通用按钮功能_QAbstractButton共性特点_PyQt学习笔记(三十一)

除了继承的信号,复选框还有一个自己的特有信号,那就是stateChanged(int state)。选中或者清除时,发射此信号。

int state也就是前面写的枚举类型:Qt.Unchecked、Qt.PartiallyChecked、Qt.Checked


# -*- coding: UTF-8 -*-
from PyQt5.Qt import *
import sys

# 创建一个应用
app = QApplication(sys.argv)
print(sys.argv)


# 创建一个QWidget类的窗口
window = QWidget()
window.setWindowTitle("复选框")  # 标题
window.resize(500, 500)                     # 窗口的大小
window.move(400, 200)                       # 窗口初次显示的位置

# 创建其他控件
# 创建复选框
cb = QCheckBox("&Python", window)
cb.move(100, 100)
cb.setIcon(QIcon("飞机.png"))   # 设置图标
cb.setTristate(True)    # 设置三态

cb.setCheckState(Qt.Checked)

cb.stateChanged.connect(lambda state: print(state))  # 返回0、1、2


cb.setCheckState(Qt.PartiallyChecked)

window.show()                               # 显示窗口,不然啥也没有

sys.exit(app.exec_())

博主个人公众号
版权声明 ▶ 本网站名称:陶小桃Blog
▶ 本文链接:https://www.52txr.cn/2022/QCheckBox.html
▶ 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行核实删除。
▶ 转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处!!

最后修改:2022 年 08 月 16 日
如果觉得我的文章对你有用,请随意赞赏