Ajout d'un nouvel élément de menu à l'application QGIS Desktop?


14

J'ai besoin d'ajouter un nouvel élément de menu au menu de niveau supérieur de QGIS Desktop (2.7.0); C'est à dire qu'il doit être au même niveau que "Projet", "Edition", "Affichage", "Couche" etc.

Pour autant que je sache, il est assez agréable de masquer les éléments de menu (Paramètres-> Personnalisation) Plus en utilisant QgisInterface ( http://qgis.org/api/classQgisInterface.html ) Je peux ajouter de nouveaux éléments aux menus déjà définis dans QGIS ( addLayerMenu, addPluginToDatabaseMenu etc) à partir de mon code de plugin.

Mais j'ai besoin d'un nouvel élément de menu sur la couche supérieure (c'est la demande du client).

Réponses:


22

Vous pouvez ajouter un menu personnalisé à l'interface graphique QGIS de cette façon:

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 )

Comme vous pouvez le voir dans l'extrait de code ci-dessus, vous ajoutez un menu à l'avant-dernière position de la barre de menus, juste avant le Helpmenu.

entrez la description de l'image ici

Ensuite, vous pouvez ajouter une action à votre menu nouvellement ajouté de cette façon:

self.menu.addAction( self.action )

Vous le savez peut-être déjà, mais juste pour être clair, une telle configuration GUI devrait normalement être située dans la initGui()méthode de votre plugin.


1
Belle réponse (tout le monde aime les captures d'écran!). N'oubliez pas d'importer QMenu au début ...
mozzbozz
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.