gpt4 book ai didi

python - 如何在 QMenu 中隐藏子菜单

转载 作者:太空狗 更新时间:2023-10-29 22:08:13 24 4
gpt4 key购买 nike

我有一个生成菜单项的应用程序,我想设置特定子菜单的可见性。

我尝试使用 setVisibility(False),但这没有用。setVisibility() 适用于菜单项,但不适用于 QMenus 中的子菜单。

看看下面的代码片段:

import sys
from PyQt4 import QtGui

class Window(QtGui.QWidget):
def __init__(self, parent=None):
super(Window, self).__init__(parent)
self.menu = QtGui.QMenu()
self.actio1 = QtGui.QAction('One', self)
self.actio2 = QtGui.QAction('Two', self)
self.menu.addAction(self.actio1)
self.menu.addAction(self.actio2)
self.actio1.setVisible(False)
self.submenu = QtGui.QMenu('submenu', self)
self.submenu.addAction('sub one')
self.submenu.addAction('sub two')
self.menu.addMenu(self.submenu)
self.submenu2 = QtGui.QMenu('submenu 2', self)
self.submenu2.addAction('sub 2 one')
self.submenu2.addAction('sub 2 two')
self.menu.addMenu(self.submenu2)
self.submenu2.setVisible(False)
layout = QtGui.QHBoxLayout()
layout.addWidget(self.menu)
self.setLayout(layout)

if __name__ == '__main__':

app = QtGui.QApplication(sys.argv)
w = Window()
w.show()
sys.exit(app.exec_())

在上面的例子中,我可以隐藏名为“One”的菜单项,但不能隐藏名为“submenu 2”的子菜单

任何人都可以给我一个想法...

最佳答案

你差一点就成功了;

取而代之的是:

self.submenu2.setVisible(False)

你想要这个:

self.submenu2.menuAction().setVisible(False)

关于python - 如何在 QMenu 中隐藏子菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13703136/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com