[Qgis-user] Looking for QGIS Python code for a three-level menu?

Raymond Nijssen r.nijssen at terglobo.nl
Sun May 12 12:31:36 PDT 2024


Hi Mike,

I'm afraid you cannot add submenus to the plugin menu.


The addPluginToMenu function only takes actions as an argument:


action_1 = QAction('Action 1')
iface.addPluginToMenu('Plugin 1', action_1)

menu_1 = QMenu('Menu 1')
iface.addPluginToMenu('Plugin 1', menu_1)




The last line causes this error:

TypeError: QgisInterface.addPluginToMenu(): argument 2 has unexpected 
type 'QMenu'




Also see the docs:

https://qgis.org/pyqgis/master/gui/QgisInterface.html#qgis.gui.QgisInterface.addPluginToMenu



There might be a tricky way to get the QMenu of the main QGIS window and 
somehow add things in a Qt way.


Kind regards,
Raymond



On 12-05-2024 19:35, Elstermann, Mike via QGIS-User wrote:
> Hello everyone,
> 
> I'm looking for a piece of QGIS Python code for a three-level menu, 
> something like this:
> 
> Plugins
>     |
>     |
> MyMenu > -+-- Submenu 1 > ---- SubSubMenu 1.1
>     |      |               +--- SubSubMenu 1.2
>     |      |               +--- SubSubMenu 1.3
> Other...  |
>            +-- Submenu 2 > ---- SubSubMenu 2.1
>            |               +--- SubSubMenu 2.2
>            |               +--- SubSubMenu 2.3
>            |               +--- SubSubMenu 2.4
>            |
>            +-- Submenu 3 > ---- SubSubMenu 3.1
>                            +--- SubSubMenu 3.2
>   Can anyone help with a code snippet?
>   Thanks & best regards, mikeE.
> 
> _______________________________________________
> QGIS-User mailing list
> QGIS-User at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user


More information about the QGIS-User mailing list