Menü öğeleri oluşturduğum bir uygulama var ve belirli bir alt menünün görünürlüğünü ayarlamak istiyorum.QMenu'daki bir alt menüyü nasıl gizlerim
setVisibility(False)
kullanmayı denedim, ancak bu çalışmadı. setVisibility()
, menü öğeleri için çalışır, ancak QMenus'taki alt menüler için geçerli değildir.
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_())
Yukarıdaki örnekte, ben "One" adlı menü öğesini gizleyebilir, ancak alt "alt menüsü 2"
adındaHerkes bana bir fikir verebilir ...
Dostum thx ... O – Rao
@PBLNarasimhaRao o – will
söz etmeyin ... mükemmel çalıştı Bu da C++ QT'de harika çalışıyor: MySubMenu-> menuAction() -> setVisible (true); Top google hit yapamayacağını söylüyor, bu yüzden burada paylaşacağımı düşündüm. Alt menüleri silmeye ve bunları yeniden eklemenize gerek kalmaz, bu da osx üzerinde bir çökmeye neden olabilir. – Marcus10110