PySide:向菜单栏添加切换选项/操作

时间:2013-11-16 14:19:18

标签: python menu pyside

在我的Python应用程序中,我使用PySide创建GUI,其中还包括一个菜单栏。添加“正常”操作(即连接到函数的操作)工作正常。

现在我需要在栏中的其中一个菜单中添加一个可切换的菜单选项。新的应该在启用时显示旁边的“已选中”图标,或者在禁用时显示任何内容。因此,菜单选项可以设置为打开或关闭,但不应调用任何操作或连接功能。

有没有办法在标准的PySide中实现这个目标?

1 个答案:

答案 0 :(得分:2)

您可以使用checkable属性简单地检查操作。之后,如果您不想使用信号来捕获它的状态变化,您可以使用它的isChecked方法来查询它的状态。

简单示例:

from PySide.QtGui import *

def main():
    app = QApplication([])

    window = QMainWindow()
    bar = QMenuBar(window)
    window.setMenuBar(bar)
    m = QMenu('menu', bar)
    bar.addMenu(m)
    action = QAction('action', m, checkable=True)
    m.addAction(action)

    window.show()
    app.exec_()
    print(action.isChecked())

if __name__ == '__main__':
    main()