Pages: 1
- Sujet précédent - QGIS: Pyqgis Lancer un plugin(Extension) dynamiquement dans un autre - Sujet suivant
#1 Fri 10 June 2016 10:27
- youyou
- Participant occasionnel
- Date d'inscription: 25 Apr 2016
- Messages: 12
QGIS: Pyqgis Lancer un plugin(Extension) dynamiquement dans un autre
Bonjour à tous ,
Je suis entrain d'implémenter une extension qgis 2.14.0 Essen, et je voudrais savoir si je peux lancer dans mon plugin que j'implémente un autre plugin déja téléchargé et installé sur Qgis . Si quelqu'un connait les fonctions qu'il faut utiliser pour lancer des plugins en code python je suis preneur,
Je vous remercie et bonne journée, Youyou
Hors ligne
#2 Fri 10 June 2016 16:58
Re: QGIS: Pyqgis Lancer un plugin(Extension) dynamiquement dans un autre
Oui. Il n'y a pas de séparations des plugins. Tu peux charger un autre plugin simplement en important son répertoire. Par exemple, si dans ~/.qgis2/python/plugins, tu as un répertoire "Plugin1" tu peux l'importer dans un autre plugin avec :
import Plugin1
Hors ligne
#3 Fri 10 June 2016 18:00
Re: QGIS: Pyqgis Lancer un plugin(Extension) dynamiquement dans un autre
Salut,
La réponse de gvellut est la plus pertinente dans 90% des cas, si tu cherches à réutiliser des fonctions provenant de l'autre plugin pour les intégrer au tien.
Si tu as seulement besoin de lancer le plugin depuis le tien, tu peux aussi accéder au plugin déjà instancié avec
Code:
iface.utils.plugins['nom_plugin']
Par exemple, si tu as l'extension Table Manager, tu peux sélectionner une couche puis lancer
Code:
qgis.utils.plugins['tablemanager'].run()
Thomas
Hors ligne
#4 Mon 13 June 2016 09:38
- youyou
- Participant occasionnel
- Date d'inscription: 25 Apr 2016
- Messages: 12
Re: QGIS: Pyqgis Lancer un plugin(Extension) dynamiquement dans un autre
Bonjour,
Merci Thomas pour ton aide.
Comme je suis nouveau sur pyqgis, j'ai encore un peu de mal à retrouver les bonnes fonctions.
Ce que je recherche en ce moment c'est une sorte de doc qui explique un peu comment par exemple remplir les champs du plugins lors du lancement avec qgis.utils.plugins['tablemanager'].run(). Je m'explique : A partir du code de mon plugin1, je veux lancer un autre plugin2, remplir ces paramètres et lancer les traitement à partir de code python de mon plugin1.
Je vous remercie tous ,
Bonne journée
Youyou,
Hors ligne
#5 Mon 13 June 2016 13:59
Re: QGIS: Pyqgis Lancer un plugin(Extension) dynamiquement dans un autre
Il faut que tu ailles voir le code source du plugin car il n'y a rien de standard là-dessus : chaque plugin va implémenter ça différemment.
Par exemple, dans le tablemanager, le code (cf https://github.com/borysiasty/tablemana … plugin.py) de la méthode run est :
Code:
def run(self): # create and show a configuration dialog or something similar layer = self.iface.activeLayer() if layer == None or layer.type() != layer.VectorLayer: QMessageBox.warning(self.iface.mainWindow(), QCoreApplication.translate('TableManager','Table manager'), QCoreApplication.translate('TableManager','Please select a vector layer')) elif layer.isEditable(): QMessageBox.warning(self.iface.mainWindow(), QCoreApplication.translate('TableManager','Table manager'), QCoreApplication.translate('TableManager','The selected layer is currently in editing mode.\nPlease exit this mode before managing the table.')) else: dialoga = tableManager_gui.TableManager(self.iface) dialoga.exec_()
Donc si tu veux lancer la méthode run et ouvrir le dialogue du plugin pour une couche, tu vas devoir changer la couche active (iface.activeLayer) avant de lancer run().
Ou bien tu peux importer la classe tableManager_gui.TableManager et créer le dialogue directement (sans passer par une instance du plugin). Ou bien tu peux aussi simplement recopier la partie du code du plugin qui t'intéresse pour l'intégrer dans ton propre plugin (ce qui est parfois le plus simple...).
Hors ligne
#6 Wed 22 June 2016 15:29
- youyou
- Participant occasionnel
- Date d'inscription: 25 Apr 2016
- Messages: 12
Re: QGIS: Pyqgis Lancer un plugin(Extension) dynamiquement dans un autre
Bonjour a tous,
merci de votre car j'ai réussi à lancer des plugins à partir de mon plugins.
Est-ce que quelq'un a essayé de remplir sa boite de dialogue automatiquement , C à d depuis pyqgis , lancer un plugins avec des paramètres fixés
Si vous avez des pistes je serai heureux de les exploiter.
Je vous remercie ,
cordialement,
Youyou
Hors ligne
Pages: 1
- Sujet précédent - QGIS: Pyqgis Lancer un plugin(Extension) dynamiquement dans un autre - Sujet suivant