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
Creating Python Submenus A submenu is a nested menu that shows up while you move the cursor over a given menu option. To add a submenu to an application, you need to call . addMenu() on a container menu object. Say you need to add a submenu in your sample application's Edit menu.
To create a menu for a PyQt5 program we need to use a QMainWindow. This type of menu is visible in many applications and shows right below the window bar. It usually has a file and edit sub menu. The top menu can be created with the method menuBar().
To create a menu, we create a menubar we call . menuBar() on the QMainWindow. We add a menu on our menu bar by calling . addMenu() , passing in the name of the menu.
Detailed Description. The QMenuBar class provides a horizontal menu bar. A menu bar consists of a list of pull-down menu items. You add menu items with addMenu().
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')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With