如何在PyQtGraph中实现Checkbox组

时间:2015-03-03 14:40:41

标签: python pyqt

我在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函数中,它会导致一些问题。有没有办法访问单击复选框时触发的事件?我认为最好在某种事件方法中进行,而不是检查更新方法。

1 个答案:

答案 0 :(得分:0)

我使用了错误的工具来完成工作。我用Radio Buttons解决了这个问题,不知道我为什么不早点想到它。

我的例子是相同的,除了:

radio1 = QtGui.QRadioButton(win)
radio1.setText("Radio 1")
gridLayout.addWidget(radio1, 1, 2, 1, 1)

if radio1.isChecked():
  # Do stuff