5
我有一個生成菜單項的應用程序,我想設置特定子菜單的可見性。如何在QMenu中隱藏子菜單
我試過使用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_())
在上面的例子中,我可以隱藏命名爲「一」的菜單項,而不是子菜單名爲「子菜單2」
任何人都可以給我一個想法...
了非常快速回復多德THX ...它的工作完美... – Rao
@PBLNarasimhaRao不要客氣 – will
這也適用於C++ QT:MySubMenu-> menuAction() - > setVisible(true); 谷歌熱門熱門說不能完成,所以我想我會在這裏分享。無需刪除子菜單並重新添加它們,這可能會導致在OSX上發生崩潰。 – Marcus10110