Search code examples
pyqt4pysideqwidgetqmenuqmenubar

adding submenu in pyqt QWidget


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


Solution

  • 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')