我有一系列复选框(P1、P2、P3),我希望选中的复选框取消选中其他复选框。下面的代码有效,但由于我在应用程序中总共有 12 个复选框,因此需要大约 200 行代码。简化代码将减少行数(总共 1075 行),并有望减少应用程序启动的时间(目前为 35 秒)
self.checkbox_P1= QtWidgets.QCheckBox("P1",self)
self.checkbox_P1.clicked.connect(self.P_uncheck_others)
self.checkbox_P2= QtWidgets.QCheckBox("P2",self)
self.checkbox_P2.clicked.connect(self.P_uncheck_others)
self.checkbox_P3= QtWidgets.QCheckBox("P3",self)
self.checkbox_P3.clicked.connect(self.P_uncheck_others)
def P_uncheck_others(self):
sender = self.sender()
if sender.text() == "P1":
# self.checkbox_P1.setChecked(False)
self.checkbox_P2.setChecked(False)
self.checkbox_P3.setChecked(False)
elif sender.text() == "P2":
self.checkbox_P1.setChecked(False)
# self.checkbox_P2.setChecked(False)
self.checkbox_P3.setChecked(False)
elif sender.text() == "P2":
self.checkbox_P1.setChecked(False)
self.checkbox_P2.setChecked(False)
# self.checkbox_P3.setChecked(False)