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 !.
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GeoRezo est partenaire institutionnel de la Conférence Francophone ESRI

image sig2019

16 et 17 octobre 2019 aux Docks de Paris

#1 Thu 11 July 2019 15:32

BadWolf
Membre
Date d'inscription: 27 Jun 2019
Messages: 9

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
Moderateur
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1629
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

Partagez  |