Aujourd'hui encore une autre fonction de PyQgis. Alors nous allons voir comment afficher les valeurs des champs des entités d'une couche.

Commençons par ouvrir la couche "COMMUNE" du dossier “BD_Topo_Administratif” (suivre ce lien pour télécharger les donnés) et la console de Python dans QGis (Ctrl+Alt+P).

On va saisir maintenant ces deux lignes dans la console de Python.

  • coucheV=iface.activeLayer()
  • for entite in coucheV.getFeatures():
    • print(entite["Nom"])

Information: remplacer "D:/BD_Topo_Administratif" par le chemin vers le dossier BD_Topo_Administratif que vous avez téléchargé.

Explication du code:

  • iface.activeLayer: sélectionner la couche active dans le panneau des couches.
  • for entite in coucheV.getFeatures():
    • For: une boucle qui permet de passer par les éléments d'un ensemble un pas un .
    • getFeatures: une fonction permettant de récupérer les informations sur les entités d'une couche.
    • for entite in coucheV.getFeatures() : si je traduit cette phrase en langage courant: passer les entités de la couche "coucheV" une par une.
  • print(entite["Nom"]):
    • "print" veut dire "écrire" en anglais.
    • Nom: le nom d'un champ de la couche "COMMUNE"
    • print(entite["Nom"]): on demande d'écrire la valeur du champ "Nom" pour l'entité.
  • Traduction du code:
    • Si je traduit le code en langage courant: vérifier les entités de la couche "COMMUNE" une par une et écrire la valeur du champ "Nom"

NB: pour cet exemple on a utilisé le mot "entite" pour la boucle "for" mais on aurait pu mettre n'importe quel autre nom.

Le résultat est le suivant:

Pour afficher la valeur de deux champs on saisit:

  • coucheV=iface.activeLayer()
  • for entite in coucheV.getFeatures():
    • print(entite["Nom"]), entite["STATUT])

NB: "STAUT" est le nom d'un autre champ de la couche "COMMUNE"

Information:

Pour que la fonction "iface.activeLayer" fonctionne, il faut sélectionner une couche dans la panneau des couches.

J'espère que cet article vous sera utile 😉

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *