复选框控件 QCheckBox 控件的案例
import sys
from PyQt5.QtCore import Qt, QRegExp
from PyQt5.QtGui import QIcon, QFont, QPalette, QPixmap, QIntValidator, QDoubleValidator, QRegExpValidator
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QToolTip, QHBoxLayout, QMainWindow, QLabel, QVBoxLayout, \
QDialog, QLineEdit, QGridLayout, QFormLayout, QTextEdit, QRadioButton, QCheckBox
'''
复选框控件 QCheckBox 控件的案例
三种状态
未选中 0
半选中 1
选中 2
'''
class QCheckBoxDemo(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 设置定位和左上角坐标
self.setGeometry(300, 300, 400, 250)
# 设置窗口标题
self.setWindowTitle('QCheckBox复选框控件的演示')
# 设置窗口图标
# self.setWindowIcon(QIcon('../web.ico'))
# 创建表单布局
vLayout = QVBoxLayout()
# 创建控件
self.checkBox1 = QCheckBox('复选框控件1')
# self.button1.setText('First Button')
self.checkBox1.setChecked(True)
self.checkBox1.stateChanged.connect(lambda :self.checkboxState(self.checkBox1))
vLayout.addWidget(self.checkBox1)
self.checkBox2 = QCheckBox('复选框控件2')
self.checkBox2.stateChanged.connect(lambda: self.checkboxState(self.checkBox2))
vLayout.addWidget(self.checkBox2)
self.checkBox3 = QCheckBox('半选中')
self.checkBox3.stateChanged.connect(lambda: self.checkboxState(self.checkBox3))
self.checkBox3.setTristate(True)
self.checkBox3.setCheckState(Qt.PartiallyChecked)
vLayout.addWidget(self.checkBox3)
self.setLayout(vLayout)
def checkboxState(self,cb):
check1Status=self.checkBox1.text()+',isChecked='+str(self.checkBox1.isChecked())+',checkState='+str(self.checkBox1.checkState())+'\n'
check2Status=self.checkBox2.text()+',isChecked='+str(self.checkBox2.isChecked())+',checkState='+str(self.checkBox2.checkState())+'\n'
check3Status=self.checkBox3.text()+',isChecked='+str(self.checkBox3.isChecked())+',checkState='+str(self.checkBox3.checkState())+'\n'
print(check1Status+check2Status+check3Status)
if __name__ == '__main__':
app = QApplication(sys.argv)
# 设置应用图标
app.setWindowIcon(QIcon('../web.ico'))
w = QCheckBoxDemo()
w.show()
sys.exit(app.exec_())