复选框QCheckBox简介
QCheckBox 复选框,通常用于表示可以启用或禁用应用中的功能。
QCheckBox中的常用方法:
- setText(): 设置复选框的显示文本;
- setEnabled(): 设置复选框是否可用,设置为False时,复选框不可用;
- text(): 返回复选框的显示文本;
- isChecked(): 返回复选框的选中状态;
- setChecked(): 设置复选框的状态,设置为True表示选中,False表示取消选中的复选框;
- setTriState(): 设置复选框为一个三态复选框
- setCheckState():三态复选框的状态设置,具体设置见三态复选框状态表。
QCheckBox复选框的三种状态:
- Qt.Checked: 值为2,表示组件被选中
- Qt.PartiallyChecked: 值为1,表示组件被半选中
- Qt.Unchecked: 值为0,表示组件没有被选中
QCheckBox类继承关系:
测试复选框QCheckBox
创建文件qcheckbox.py, 界面包括三个QCheckBox按钮, 一个缺省状态为未选中,一个为选中,一个为三态按钮,在三个按钮之下,创建一个带边框和指定背景的QLabel显示三个按钮的状态信息。完整代码如下:
import sysfrom PyQt5 import QtCore, QtGui, QtWidgetsfrom PyQt5.QtWidgets import (QApplication, QMainWindow, QLabel, QCheckBox)from PyQt5.QtCore import Qt class DemoCheckBox(QMainWindow): def __init__(self, parent=None): super(DemoCheckBox, self).__init__(parent) # 设置窗口标题 self.setWindowTitle("实战PyQt5: QCheckBox Demo!") # 设置窗口大小 self.resize(360, 240) # 复选框1 self.chkBox1 = QCheckBox(self) self.chkBox1.setText("复选框1") self.chkBox1.move(10, 10) self.chkBox1.resize(100, 24) self.chkBox1.stateChanged.connect(lambda: self.btnState(self.chkBox1)) # 复选框2,默认状态为选中 self.chkBox2 = QCheckBox(self) self.chkBox2.setText("复选框2") self.chkBox2.move(10, 40) self.chkBox2.resize(100, 24) self.chkBox2.setChecked(True) self.chkBox2.stateChanged.connect(lambda: self.btnState(self.chkBox2)) # 复选框3,设置为3状态,设置默认选中状态为半选状态 self.chkBox3 = QCheckBox(self) self.chkBox3.setText("三态复选框") self.chkBox3.move(10, 70) self.chkBox3.resize(100, 24) self.chkBox3.setTristate(True) self.chkBox3.setCheckState(Qt.PartiallyChecked) self.chkBox3.stateChanged.connect(lambda: self.btnState(self.chkBox3)) # 标签信息 info_title = QLabel(self) info_title.setText("复选框状态信息:") info_title.move(10, 100) info_title.resize(100, 24) # QLabel标签部件,用于显示三个复选框的状态信息 self.showState = QLabel(self) self.showState.setStyleSheet( 'border-width: 1px; border-style: solid; background-color: rgb(192,192,192);') self.showState.move(10, 126) self.showState.resize(300, 100) self.showState.setWordWrap(True) # 允许换行 # 显示复选框的状态 self.btnState(self.chkBox1) # 输出复选框的状态 def btnState(self, btn): status1 = self.chkBox1.text()+", isChecked="+str(self.chkBox1.isChecked()) + ', checkState='+str(self.chkBox1.checkState())+"" status2 = self.chkBox2.text()+", isChecked="+str(self.chkBox2.isChecked()) + ', checkState='+str(self.chkBox2.checkState())+"" status3 = self.chkBox3.text()+", isChecked="+str(self.chkBox3.isChecked()) + ', checkState='+str(self.chkBox3.checkState())+"" self.showState.setText(status1 + status2 + status3) if __name__ == '__main__': app = QApplication(sys.argv) window = DemoCheckBox() window.show() sys.exit(app.exec())
运行结果如下图所示:
本文知识点
- QCheckBox状态设置,包括三态设置;
- 使用方法setStyleSheet改变部件的外观,在这里修改了QLabel的边框和背景色。
喜欢本文内容就收藏,点赞,评论,关注和转发。