Utilisation de script d'initialisation

Introduction

QGIS permet d'initialiser le formulaire à son ouverture grâce à du code Python afin notamment de pré-renseigner des champs du formulaire lors de son affichage.

Pour ce faire, QGIS offre trois possibilités d'insertion de code:

  • Charger depuis un fichier externe : permet d'utiliser un script Python écrit dans un fichier externe .py

  • Fournir le code dans cette boîte de dialogue : l'écriture du script s'effectue directement dans la boîte de dialogue de création du formulaire

  • Charger depuis l'environnement : par appel d'une fonction disponible dans la session QGIS

Exemple d'utilisation

Pour illustrer cette possibilité d'initialiser un formulaire, le script Python suivant vous est proposé : Script Python initialisation formulaire

Il illustre la possibilité de remplir des zones du formulaire par récupération d'informations issues des couches composant le projet.

Lors de la création d'un nouvel objet, les attributs des objets d'autres couches du projet (jusqu'à 3 attributs) pourront alimenter le formulaire à son ouverture.

Pour déterminer les objets concernés, ce script s'appuie sur l'opérateur Contains: seuls les objets des couches déclarées contenant l'objet créé pourront fournir les attributs alimentant les champs du formulaire.

Exemple ci-dessous : on souhaite pré-remplir le champ Commune du formulaire par le nom de la commune issu de l'objet de la couche des communes. L'objet fournissant l'information contient la géométrie de l'objet alimenté par le formulaire.

Attention à ne pas insérer ou ajouter des espaces dans le code fourni, car les fonctions Python n'ont pas de «begin» ou «end» explicites, ni d'accolades qui pourraient marquer là où débute / finit le code de la fonction. Le seul délimiteur est «:» et l'indentation du code lui-même.

Après avoir inséré le code, on indique à QGIS quelle est la fonction de lancement du script.

Si votre code ne fonctionne pas, il peut-être utile de vérifier que l'indentation est correcte, par exemple avec le logiciel notepad++ qui peut mettre en exergue les tabulations et les blancs. Le langage python est en effet assez strict.

Reporter le nom de la fonction de démarrage :

QGIS est désormais prêt à exécuter le script à l'ouverture du formulaire. Il ne reste plus qu'à indiquer dans le script :

  • Quelles couches du projet QGIS doivent être interrogées.

  • Pour chaque couche, quel champ contient l'information que l'on souhaite afficher à l'ouverture du formulaire.

  • Quel champ du formulaire va recevoir l'information.

Par défaut, ce script propose la récupération de 3 attributs d'objet(s). Si l'on ne souhaite interroger que 2 attributs, on met une valeur de couche à interroger à vide : IoQueryLayer3=""