adding submenu in pyqt QWidget

Ciasto piekarz picture Ciasto piekarz · Feb 5, 2013 · Viewed 8.6k times · Source

I know its very basic question but I am little bit confused, probably I am forgetting something.

I am trying to add a sub menu "Preview" to the "Tools" in the QMenuBar()

so far this is what I am trying to do

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

but I guess this is not the correct way to add a sub menu

Answer

Avaris picture Avaris · Feb 5, 2013

Sub menu should be a QMenu, not QAction:

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

It can be a bit more simple if you used convenience methods:

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