我试图进行一些验证,以便:
但是,当我运行此代码时,单击任何复选框都将取消选中这3个复选框
也就是说,窗口初始化时选中了“未选择”。但当我单击“选择一个”时,它会取消选中“未选择”,这是预期的,但“选择一个”不会被选中
我做错了什么
import sys
import PyQt5
class Test(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
checkBoxNone = QCheckBox("None Selected")
checkBoxA = QCheckBox("Select A")
checkBoxB = QCheckBox("Select B")
checkBoxNone.setChecked(True)
checkBoxNone.stateChanged.connect(lambda checked: (checkBoxA.setChecked(False), checkBoxB.setChecked(False)))
checkBoxA.stateChanged.connect(lambda checked: checkBoxNone.setChecked(False))
checkBoxB.stateChanged.connect(lambda checked: checkBoxNone.setChecked(False))
grid = QGridLayout()
grid.addWidget(checkBoxNone, 1, 0)
grid.addWidget(checkBoxA, 2, 0)
grid.addWidget(checkBoxB, 3, 0)
self.setLayout(grid)
self.setWindowTitle('Test')
self.show()
if __name__ == '__main__':
if not QApplication.instance():
app = QApplication(sys.argv)
else:
app = QApplication.instance()
ex = Test()
sys.exit(app.exec_())
造成此问题的原因是,根据您的要求,只有在检查了某些
QCheckBox
但未进行验证的情况下,您才应选择这些选项,以便能够正确处理它,创建插槽,并了解发出信号的对象,sender()
方法:相关问题 更多 >
编程相关推荐