#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: 1218
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


