我在python中使用pyqtgraph来获得一些图形功能。我添加了一些复选框:
check1 = QtGui.QCheckBox(win)
check2 = QtGui.QCheckBox(win)
check3 = QtGui.QCheckBox(win)
check4 = QtGui.QCheckBox(win)
check1.setText("Checkbox 1")
check2.setText("Checkbox 2")
check3.setText("Checkbox 3")
check4.setText("Checkbox 4")
gridLayout.addWidget(check1, 1, 2, 1, 1)
gridLayout.addWidget(check2, 1, 4, 1, 1)
gridLayout.addWidget(check3, 1, 6, 1, 1)
gridLayout.addWidget(check4, 1, 8, 1, 1)
如何强制执行,以便用户在任何给定时间只能选中1个复选框?我在更新功能中尝试了这个:
if check1.isChecked():
check2.setChecked(False)
check3.setChecked(False)
check4.setChecked(False)
if check2.isChecked():
source = 2
check1.setChecked(False)
check3.setChecked(False)
check4.setChecked(False)
....
那种作品,但似乎没有。我认为,因为它在update
函数中,它会导致一些问题。有没有办法访问单击复选框时触发的事件?我认为最好在某种事件方法中进行,而不是检查更新方法。
答案 0 :(得分:0)
我使用了错误的工具来完成工作。我用Radio Buttons解决了这个问题,不知道我为什么不早点想到它。
我的例子是相同的,除了:
radio1 = QtGui.QRadioButton(win)
radio1.setText("Radio 1")
gridLayout.addWidget(radio1, 1, 2, 1, 1)
if radio1.isChecked():
# Do stuff