2013-02-05 22 views
5

So che è una domanda molto basilare ma sono un po 'confuso, probabilmente sto dimenticando qualcosa.aggiungendo sottomenu in pyqt QWidget

Sto cercando di aggiungere un menu secondario "Anteprima" per gli "Strumenti" nella QMenuBar()

finora questo è quello che sto cercando di fare

tools = fileMenu.addMenu('&Tools') 
prevAction = QtGui.QAction('Preview',self) 
prevInNuke = QtGui.QAction("Using &Nuke",prevAction) 
tools.addAction(prevAction) 
prevAction.addAction(prevInNuke) 

ma credo che questo non è il modo corretto per aggiungere un sottomenu

risposta

8

Menu secondario dovrebbe essere un QMenu, non QAction:

tools = fileMenu.addMenu('&Tools') 
prevMenu = QtGui.QMenu('Preview',self) 
prevInNuke = QtGui.QAction("Using &Nuke",prevAction) 
tools.addMenu(prevMenu) 
prevAction.addAction(prevInNuke) 

Può essere un po 'più semplice se si è utilizzato metodi di convenienza:

tools = fileMenu.addMenu('&Tools') 
prevMenu = tools.addMenu('Preview') 
prevAction = prevMenu.addAction('Using &Nuke') 
+0

Grazie per aver compreso entrambe le versioni! I metodi di convenienza sono certamente belli quando puoi usarli (ma non puoi sempre usarli). – aldo