向QGIS Desktop应用程序添加新菜单项?


14

我需要在QGIS Desktop(2.7.0)的顶层菜单中添加新菜单项;即,它应与“项目”,“编辑”,“视图”,“层”等处于同一级别。

据我所知,有一种非常好的方式如何使用QgisInterface(http://qgis.org/api/classQgisInterface.html)隐藏菜单项(“设置”->“自定义”)加上我可以向已经在QGIS中定义的菜单中添加新项(我的插件代码中的addLayerMenu,addPluginToDatabaseMenu等)。

但是我需要顶层的新菜单项(这是客户的要求)。

Answers:


22

您可以通过以下方式将自定义菜单添加到QGIS GUI:

self.menu = QMenu( "&My tools", self.iface.mainWindow().menuBar() )
actions = self.iface.mainWindow().menuBar().actions()
lastAction = actions[-1]
self.iface.mainWindow().menuBar().insertMenu( lastAction, self.menu )

如您在上面的代码片段中所看到的,您正在将菜单添加到菜单栏的倒数第二个位置,就在菜单之前Help

在此处输入图片说明

然后,您可以通过以下方式将操作添加到新添加的菜单中:

self.menu.addAction( self.action )

您可能已经知道,但是为了清楚起见,这种GUI配置通常应位于initGui()插件的方法中。


1
好的答案(每个人都喜欢屏幕截图!)。只是不要忘记在开始时导入QMenu ...
mozzbozz
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.