Aggiunta di una nuova voce di menu all'app desktop QGIS?


14

Devo aggiungere una nuova voce di menu al menu di livello superiore di QGIS Desktop (2.7.0); Cioè deve essere allo stesso livello di "Progetto", "Modifica", "Visualizza", "Livello" ecc.

Per quanto ne so, esiste un modo piuttosto carino di come nascondere le voci di menu (Impostazioni-> Personalizzazione) Plus utilizzando QgisInterface ( http://qgis.org/api/classQgisInterface.html ) Posso aggiungere nuovi elementi ai menu già definiti in QGIS ( addLayerMenu, addPluginToDatabaseMenu ecc.) dal mio codice plugin.

Ma ho bisogno di una nuova voce di menu sul livello superiore (è richiesta dal cliente).

Risposte:


22

È possibile aggiungere un menu personalizzato alla GUI di QGIS in questo modo:

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 )

Come puoi vedere nello snippet di codice sopra, stai aggiungendo un menu alla penultima posizione della barra dei menu, proprio prima del Helpmenu.

inserisci qui la descrizione dell'immagine

Quindi, puoi aggiungere un'azione al tuo menu appena aggiunto in questo modo:

self.menu.addAction( self.action )

Potresti già saperlo, ma solo per chiarire, tale configurazione della GUI dovrebbe normalmente trovarsi nel initGui()metodo del tuo plug-in.


1
Bella risposta (a tutti piacciono gli screenshot!). Basta non dimenticare di importare QMenu all'inizio ...
mozzbozz
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.