问题描述:PyQt的QCheckBox复选框实现单选功能
重点在于槽函数
def changeCheck1(self):
if self.checkBox1.checkState() == Qt.Checked:
self.checkBox2.setChecked(False)
self.checkBox3.setChecked(False)
self.checkBox4.setChecked(False)
完整代码例子
import sys
from PyQt5.Qt import *
class MainWindow(QWidget):
def __init__(self):
super(MainWindow, self).__init__()
self.resize(500, 500)
self.checkBox1 = QCheckBox(self)
self.checkBox2 = QCheckBox(self)
self.checkBox3 = QCheckBox(self)
self.checkBox4 = QCheckBox(self)
vbox=QHBoxLayout(self)
vbox.addWidget(self.checkBox1)
vbox.addWidget(self.checkBox2)
vbox.addWidget(self.checkBox3)
vbox.addWidget(self.checkBox4)
self.setLayout(vbox)
self.checkBox1.stateChanged.connect(self.changeCheck1)
self.checkBox2.stateChanged.connect(self.changeCheck2)
self.checkBox3.stateChanged.connect(self.changeCheck3)
self.checkBox4.stateChanged.connect(self.changeCheck4)
def changeCheck1(self):
if self.checkBox1.checkState() == Qt.Checked:
self.checkBox2.setChecked(False)
self.checkBox3.setChecked(False)
self.checkBox4.setChecked(False)
def changeCheck2(self):
if self.checkBox2.checkState() == Qt.Checked:
self.checkBox1.setChecked(False)
self.checkBox3.setChecked(False)
self.checkBox4.setChecked(False)
def changeCheck3(self):
if self.checkBox3.checkState() == Qt.Checked:
self.checkBox1.setChecked(False)
self.checkBox2.setChecked(False)
self.checkBox4.setChecked(False)
def changeCheck4(self):
if self.checkBox4.checkState() == Qt.Checked:
self.checkBox1.setChecked(False)
self.checkBox2.setChecked(False)
self.checkBox3.setChecked(False)
if __name__ == '__main__':
app=QApplication(sys.argv)
main=MainWindow()
main.show()
sys.exit(app.exec())