Додавання нового пункту меню до програми QGIS Desktop?


14

Мені потрібно додати новий пункт меню до меню верхнього рівня QGIS Desktop (2.7.0); Тобто це повинно бути на одному рівні з "Проектом", "Редагувати", "Переглянути", "Шар" тощо.

Наскільки я знаю, є досить приємний спосіб приховати пункти меню (Налаштування-> Настроювання) Плюс за допомогою QgisInterface ( http://qgis.org/api/classQgisInterface.html ) Я можу додавати нові елементи до меню, вже визначені в QGIS ( addLayerMenu, addPluginToDatabaseMenu тощо) з мого коду плагіна.

Але мені потрібен новий пункт меню на верхньому шарі (це запит від замовника).

Відповіді:


22

Ви можете додати користувальницьке меню до графічного інтерфейсу QGIS таким чином:

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 )

Ви, можливо, вже знаєте, але для того, щоб зрозуміти, така конфігурація графічного інтерфейсу повинна розташовуватися в initGui()методі вашого плагіна.


1
Гарна відповідь (всі люблять скріншоти!). Просто не забудьте імпортувати QMenu на початку ...
mozzbozz
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.