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 …
Retrouver nos membres bienfaiteurs
#1 Fri 14 February 2020 21:57
- Patrickblancseau
- Participant occasionnel
- Date d'inscription: 16 Jul 2019
- Messages: 45
QGIS: creer un plugin simple
Bonjour
je suppose que c'est une question mais je n'arrive pas à creer un plugin tous simple
j'ai essayé avec
http://www.geoinformations.developpemen … a3677.html
Impossible dans 100% des cas j'ai une erreur
D'avance merci pour votre aide, cordialement
Code:
from qgis.core import QgsProcessing from qgis.core import QgsProcessingAlgorithm from qgis.core import QgsProcessingMultiStepFeedback from qgis.core import QgsProcessingParameterVectorLayer from qgis.core import QgsProcessingParameterFeatureSink import processing class TransformerCoucheVecteur(QgsProcessingAlgorithm): def initAlgorithm(self, config=None): self.addParameter(QgsProcessingParameterVectorLayer('couchevecteur', 'couche vecteur', types=[QgsProcessing.TypeVectorAnyGeometry], defaultValue=None)) self.addParameter(QgsProcessingParameterFeatureSink('Tampon', 'tampon', type=QgsProcessing.TypeVectorPolygon, createByDefault=True, defaultValue=None)) def processAlgorithm(self, parameters, context, model_feedback): # Use a multi-step feedback, so that individual child algorithm progress reports are adjusted for the # overall progress through the model feedback = QgsProcessingMultiStepFeedback(1, model_feedback) results = {} outputs = {} # Tampon alg_params = { 'DISSOLVE': True, 'DISTANCE': 4, 'END_CAP_STYLE': 0, 'INPUT': parameters['couchevecteur'], 'JOIN_STYLE': 1, 'MITER_LIMIT': 1, 'SEGMENTS': 1, 'OUTPUT': parameters['Tampon'] } outputs['Tampon'] = processing.run('native:buffer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) results['Tampon'] = outputs['Tampon']['OUTPUT'] return results def name(self): return 'transformer couche vecteur' def displayName(self): return 'transformer couche vecteur' def group(self): return '' def groupId(self): return '' def createInstance(self): return TransformerCoucheVecteur()
Hors ligne
#2 Sat 15 February 2020 17:56
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: QGIS: creer un plugin simple
Salut,
dans ce genre de question il est important de détailler la nature de l'erreur.
Merci
Hors ligne
#3 Tue 18 February 2020 08:57
- Njoy
- Participant actif
- Lieu: Lyon
- Date d'inscription: 29 Nov 2018
- Messages: 89
Re: QGIS: creer un plugin simple
Bonjour,
Voici un bout de tuto pour QGIS 2.18 :
Pré-requis :
• Un éditeur de texte enrichi, notepadd++ version portable
• QGIS 2.18
• Le plugin « PLUGIN RELOADER » (activer les extensions expérimentales si pas dans la liste)
• Le plugin « PLUGIN BUILDER »
• Qt designer (normalement natif avec l’install de qgis)
• OSGEO4W SHELL (normalement natif avec l’install de qgis)
• Notions de PYTHON (pyqgis2 plus précisément)
1 – CREATION DU PLUGIN VIA PLUGIN BUILDER
Le dossier du plugin est créé, il ne sera pas fonctionnel avant d’être compilé !
2- CREER UNE PREMIERE INTERFACE GRAPHIQUE AVANT DE COMPILER
Lancer QT , créer une nouvelle interface et enregistrer dans le dossier de plugin sous la forme « ui_NOMDUPLUGIN.ui »
3- CREER votre icone
En modifiant dans le dossier du plugin « icon.png », nécessitera de recompiler si modification de l’icone (etape4), dans l’exemple
4 – COMPILER LE PLUGIN
Lancer OSGeo4W Shell
TAPPER LA COMMANDE :
cd c:\Users\utilisateur\.qgis2\python\plugins\NOMDUPLUGIN\
TAPPER LES COMMANDE :
pyuic4 -o ui_NOMDUPLUGIN.py ui_NOMDUPLUGIN.ui
pyrcc4 -o resources.py resources.qrc
5- LANCER QGIS et activer le plugin
6) Coder le plugin :
• Modifier l’interface graphique via QT DESIGNER en ouvrant dans le dossier du plugin :
« NOMDUPLUGIN_dialog_base.ui »
Pour voir les modifications en live dans QGIS, il est possible de recharger le plugin via l’extension PLUGIN RELOADER
• Modifier le code : via notepadd++ modifier le fichier dans le dossier du plugin «NOMDUPLUGIN.py »
Hors ligne