介绍

QCheckBox类继承自QAbstractButton类,它提供了一组带文本标签的复选框,用户可以选择多个选项。和QPushButton一样,复选框可以显示文本或者图标,其中文本可以通过构造函数或者​​setText()​​来设置;图标可以通过​​setIcon()​​来设置。在视觉上,QButtonGroup可以吧许多复选框组织在一起。

QcheckBox(复选框)和QRadioButton(单选框)都是选项按钮,因为它们都可以在开(选中)或者关(未选中)之间切换。它们的区别是对“多选一”和“多选多”。

只要复选框被选中或者取消选中,都会发射一个​​stateChanged​​信号。如果想在复选框状态改变时触发相应的行为,请连接这个信号,可以使用​​isChecked()​​来查询复选框是否被选中。

除了常见的选中和未选中两种状态,QCheckBox提供了第三种状态(半选中)来表明“没有变化”。当需要为用户提供一个选中或者未选中复选框的选择时,这种状态很有用。如果需要第三种状态,则可以通过​​setTristate()​​来使它生效,并使用checkState()来查询当前的切换状态。

方法

方法

描述

setChecked()

设置复选框的状态,设置为True时表示选中复选框,设置为False时表示取消选中复选框

setText()

设置复选框的显示文本

text()

返回复选框的显示文本

isChecked()

检查复选框是否被选中

setTriState()

设置复选框为一个三态复选框

三态复选框有三种状态。

名称

含义

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 = QGroupBox("Checkboxes")
groupBox.setFlat( False )

layout = QHBoxLayout()
self.checkBox1= QCheckBox("&Checkbox1")
self.checkBox1.setChecked(True)
self.checkBox1.stateChanged.connect( lambda:self.btnstate(self.checkBox1) )
layout.addWidget(self.checkBox1)

self.checkBox2 = QCheckBox("Checkbox2")
self.checkBox2.toggled.connect( lambda:self.btnstate(self.checkBox2) )
layout.addWidget(self.checkBox2)

self.checkBox3 = QCheckBox("tristateBox")
self.checkBox3.setTristate(True)
self.checkBox3.setCheckState(Qt.PartiallyChecked )
self.checkBox3.stateChanged.connect( lambda:self.btnstate(self.checkBox3) )
layout.addWidget(self.checkBox3)

groupBox.setLayout(layout)
mainLayout = QVBoxLayout()
mainLayout.addWidget(groupBox)

self.setLayout(mainLayout)
self.setWindowTitle("checkbox demo")

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_())

使用展示

复选按钮QCheckBox_构造函数

后记

今天选宿舍有些小小难过吧,但是生活和学习必须继续!