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

#1 Wed 07 September 2022 00:25

passby
Participant occasionnel
Date d'inscription: 1 Sep 2022
Messages: 11

QGIS 3.X: Script pythons - parametres d'entree

Bonjour

J'utilise un script python habituellement sur Qgis 2
Seulement il y a quelques différences depuis Qgis 3

le soucis porte sur la définition des paramètres d'entrée/sortie
au niveau de la boite de dialogue du script
+ le nom du script et du groupe

sur Qgis 2
le code suivant en début de script fonctionnait correctement :

Code:

##Travaux=group

##Process=name
##serveur=string 10.203.10.1
##bdd=string smn2022
##schema=string pm
##login=string id
##mot_de_passe=string mdp
##Dossier=Folder
 
import..

Sur Qgis 3,
y'a t-il un moyen similaire et donc assez simple pour définir ces entrées ?

Merci bien

Hors ligne

 

#2 Wed 07 September 2022 09:59

JLH
Participant actif
Date d'inscription: 7 Dec 2019
Messages: 69

Re: QGIS 3.X: Script pythons - parametres d'entree

Bonjour,

Je pense que toute la syntaxe Python3 est a étudier  :
Pour déclarer une chaine de caractère ( string) : str(10.203.10.1) . La doit être l'erreur.

Bonne journée

Hors ligne

 

#3 Wed 12 October 2022 11:39

passby
Participant occasionnel
Date d'inscription: 1 Sep 2022
Messages: 11

Re: QGIS 3.X: Script pythons - parametres d'entree

Re Bonjour

Apres plusieurs recherches j'a trouvé la solution

Pour définir des paramètres sous Qgis3
on utilise le "addParameter" ou encore le "addOutput" dans le "def initAlgorithm"

Code:

def initAlgorithm(self, config=None):
        #Add String as input
        self.addParameter(
            QgsProcessingParameterString(
                self.SERVEUR,
                self.tr('Serveur hôte'),
                defaultValue = '10.203.10.1'
            )
        )
       [...]

Puis on les réutilise dans le "def processAlgorithm" (l'algorithme principale qui effectue la tache)

Code:

def processAlgorithm(self, parameters, context, feedback):
        host = self.parameterAsString (parameters,'SERVEUR', context)
        [...]

Hors ligne

 

Pied de page des forums

Powered by FluxBB