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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 11 July 2019 15:32

BadWolf
Participant occasionnel
Date d'inscription: 27 Jun 2019
Messages: 35

QGIS: Simplification d'un programme Python

Bonjour

J'ai réalisé un programme python qui exécute certaine tache et pas d'autre suivant ce que rentre l'utilisateur. C'est a dire que si l'utilisateur coche une case alors le programme s’exécutera  et si il ne la coche pas alors le programme ne s’exécutera pas. L'utilisateur a ainsi le choix de 5 paramètre différent qu'il peut faire fonctionné ou non.
Pour réaliser ceci j'ai due insérer dans le programme python tout les choix possible de sélection des attribut ce qui donne a la fin un programme très très long. Et je sais que c'est possible de simplifier le programme sans énumérer toutes les possibilité que l'utilisateurs peut faire.  Après de nombreuse tentative j'ai abandonné. Est ce que quelqu'un sait comment on pourrait simplifié ce programme??
Je met le programme en pièce joint pour ceux qui peuvent le comprendre.
Je précise que je suis sous QGIS version 2.16.3

je vous remercie de votre aide.

Cordialement

BadWolf

Dernière modification par BadWolf (Thu 11 July 2019 15:33)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#2 Mon 15 July 2019 12:10

MathieuR
Membre
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1690
Site web

Re: QGIS: Simplification d'un programme Python

Bonjour,

En effet, il y a pas mal de choses qui me semblent pouvoir être automatisées et simplifiées.

A titre d'exemple, voici comment récupérer la liste des noms de variables en python dans QGIS 3.*

Code:

layer = QgsProject.instance().mapLayersByName('point')[0]
pr = layer.dataProvider()
flds = pr.fields()
fld_names  = [fld.displayName() for fld in flds]
for fld_name in fld_names:
    print(fld_name)

geodata au cerema et petits billets en géomatique

Hors ligne

 

Pied de page des forums

Powered by FluxBB