Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !

10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …

Faire un don 

Retrouver nos membres bienfaiteurs

#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

 

Pied de page des forums

Powered by FluxBB