在Pyqt5文件菜单中实现可检查按钮,其作用与单选按钮类似

时间:2018-03-12 18:03:36

标签: python user-interface button radio-button pyqt5

我在PyQt5中使用"文件"创建了一个文件菜单。带两个可检查按钮的选项(button1,button2)。不幸的是,我还没有找到一种方法来将单选按钮实现到文件菜单中,所以我现在假设它是不可能的。相反,我想让这两个可检查的按钮像单选按钮一样 - 这意味着如果检查一个按钮,则另一个按钮变为未选中状态。在给定时间只能检查一个。

我试图这样做(我认为这是最合乎逻辑和最直接的),但它不起作用:

def fileMenu(self):
    if self.button1.isChecked() == True:
    self.button2.setChecked(False)

如果我检查button2然后检查button1,则按钮2不会取消选中。有没有其他方法可以做到这一点或我的代码中的任何错误阻止它工作?或者......理想情况下,有没有办法在文件菜单中实现单选按钮?

1 个答案:

答案 0 :(得分:0)

您可以使用QActionGroup完成此操作。您必须将所有这些按钮组合在一个操作组下。否则它将不起作用。 可以找到文档here.

以下是使用两个单选按钮实现QActionGroup的示例:
w是您的QtMainWindow,ag正在定义QActionGroup,menu是您的菜单名称。

ag = QtGui.QActionGroup(w, exclusive=True)
a = ag.addAction(action_a)
menu.addAction(a)
b = ag.addAction(action_b)
menu.addAction(b)