#1 Thu 16 July 2020 14:48
- Mattgris
- Juste Inscrit !
- Date d'inscription: 21 Nov 2015
- Messages: 5
QGIS 3.10: Ajouter un plugin dans un sous menu existant
Bonjour,
J'ai développé plusieurs plugins sur QGis, et je cherche à améliorer la façon dont ils apparaissent dans les menus.
J'ai créé un nouveau menu dans la barre des menus général, que l'on va nommer "Menu Principal".
Pour l'instant, tous mes plugins vont se ranger dans ce menu. J'aimerai maintenant les regrouper dans des sous menus: par exemple les plugins portant sur des couches de point seraient dans un sous menu nommé "Points" et ceux traitant des lignes dans un sous menu nommé "Lignes".
Je sais que c'est faisable en faisant un seul plugin avec plusieurs fonctionnalités (comme l'extension mmqgis par exemple). Mais j'aimerais conserver des plugins différenciés, que l'ont installe séparément, mais qui vont se ranger dans les même menus personnalisés une fois installés.
Quelqu'un a une idée?
Je ne sais pas si j'ai été très clair, s'il y a besoin de plus d'explications je peux essayer de formuler autrement ^^
Merci d'avance!!
Hors ligne
#2 Fri 17 July 2020 09:47
- Mattgris
- Juste Inscrit !
- Date d'inscription: 21 Nov 2015
- Messages: 5
Re: QGIS 3.10: Ajouter un plugin dans un sous menu existant
J'ai réussi finalement:
Dans le script du plugin, je vais chercher la liste des actions du menus principal. Si mon sous menu n'existe pas, je le créé. S'il existe déjà, je le récupère en tant que menu via la fonction menu() de l'action (QtWidgets.QAction.menu()). Je pense que c'était ça qui me manquait.
Je ne sais pas si c'est la meilleure méthode, mais ça semble fonctionner en tout cas.
Bonne journée à tous!
Hors ligne
#3 Wed 02 December 2020 16:43
- fassa222
- Participant occasionnel
- Date d'inscription: 18 Jan 2012
- Messages: 36
Re: QGIS 3.10: Ajouter un plugin dans un sous menu existant
Bonjour @Mattgris,
Je me permets de vous contacter, puisse que j'ai vu que vous avez réussi à ajouter un plugin sur un Menu, ca m'intéresse fortement , puisse que j'ai un ensemble de Plugins que je dois restructurer suivant différents menus. Si tu as exemple sur ce que tu avais fait, cela m'aiderai fortement.
Code:
class ClassGeneraleMenu: def __init__(self, iface): self.iface = iface # Declaration de mon Menu Global en premier lieu self.ambition_menu = QtWidgets.QMenu('MenuGlobal') # Function qui me crée des sous menus dans ma MenuGlobal def atrqgis_add_submenu(self, submenu): self.ambition_menu.addMenu(submenu) # Function iniGuit def initGui(self): # Insertion du Menu dans la barre menu de Qgis self.iface.mainWindow().menuBar().insertMenu(self.iface.firstRightStandardMenu().menuAction(),self.ambition_menu) # Sous Menu Par projet # Myprojet Sous Menu self.adn_menu = QtWidgets.QMenu(QCoreApplication.translate("atrqgis", "&Myprojet")) self.atrqgis_add_submenu(self.adn_menu) # CONTROLE DESIGN Submenu self.controle_design = self.adn_menu.addMenu('Contrôle') # Ajout des actions dans dans la fenetre execution icon = QIcon(os.path.dirname(__file__) + "/icons/import.png") self.animate_lines_action = QtWidgets.QAction(icon, "A.1.1 Import de données", self.iface.mainWindow()) self.animate_lines_action.triggered.connect(self.baba_fonc) # Ajout de l'action dans la CONTROLE DESIGN Submenu self.controle_design.addAction(self.animate_lines_action)
Merci de la réponse
Hors ligne