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

Printemps des cartes 2024

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

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

 

Pied de page des forums

Powered by FluxBB