Important

La traduction est le fruit d’un effort communautaire auquel vous pouvez vous joindre. Cette page est actuellement traduite à 89.77%.

5.3. Leçon : Formulaires

Quand vous ajoutez de nouvelles données via la numérisation, une boîte de dialogue vous est présentée pour vous permettre de remplir les attributs pour cette fonction. Cependant, cette boîte de dialogue n’est, par défaut, visuellement pas très agréable. Cela peut causer un problème d’utilisation, en particulier si vous avez de grands jeux de données à créer, ou si vous voulez que d’autres personnes vous aident à numériser et qu’elles trouvent les formulaires par défaut source de confusion.

Heureusement, QGIS vous laisse créer vos propres boîtes de dialogue personnalisées pour une couche. Cette leçon vous montre comment.

Objectifs de cette leçon : Créer un formulaire pour une couche.

5.3.1. ★☆☆ Follow Along: Using QGIS” Form Design Functionality

  1. Sélectionnez la couche roads dans le panneau Couches.

  2. Entrez comme avant en Mode d’édition.

  3. Ouvrez la table attributaire de la couche roads.

  4. Faites un clic-droit sur une cellule dans la table. Un petit menu apparaîtra, avec l’entrée Ouvrir formulaire.

  5. Cliquez dessus pour voir le formulaire que QGIS génère pour cette couche.

Évidemment, il serait bien de pouvoir faire cela tout en regardant la carte, plutôt que d’avoir besoin de chercher une rue spécifique dans la table d’attribut tout le temps.

  1. Sélectionnez la couche roads dans le panneau Couches.

  2. En utilisant l’outil identify Identifier, cliquez sur une rue dans la carte.

  3. Le panneau Résultats identifiés s’ouvre et affiche une arborescence montrant les valeurs des champs et d’autres informations générales sur l’entité cliquée.

  4. At the top of the panel, check the Auto open form for single feature results checkbox in the options Identify Settings menu.

  5. Cliquez maintenant sur une des rues de la carte. À coté du dialogue Résultats Identité vous verrez la forme maintenant familière :

    ../../../_images/roads_form.png
  6. Chaque fois que vous cliquez sur un élément avec l’outil Identifier, sa forme apparaît tant que la case Formulaire d’ouverture automatique est activée

5.3.2. ★☆☆ Essayez vous-même : Éditer des valeurs à l’aide d’un formulaire

Si vous êtes en mode d’édition, vous pouvez utiliser ce formulaire pour modifier les entités des attributs.

  1. Activez le mode d’édition (si ce n’est déjà fait).

  2. En utilisant l’outil identify identifier des entités, cliquez sur la rue principale qui traverse Swellendam :

    ../../../_images/main_street_selected.png
  3. Modifier sa valeur highway pour qu’elle soit secondary.

  4. Quitter le mode édition et enregistrer vos modifications

  5. Ouvrez la Table attributaire et notez que la valeur a été mise à jour dans la table des attributs et donc dans les données sources

5.3.3. ★★☆ Follow Along: Setting Form Field Types

C’est bien de modifier les choses en utilisant un formulaire, mais vous devez encore tout entrer à la main. Heureusement, les formulaires ont différentes sortes de soi-disant outils qui vous permettent de modifier les données de différentes manières.

  1. Ouvrez les Propriétés… de la couche roads

  2. Basculez sur l’onglet Champs. Vous verrez ceci :

    ../../../_images/fields_panel.png
  3. Passez à l’onglet Formulaire d’attributs. Vous verrez ceci :

    ../../../_images/attributes_form.png
  4. Cliquez sur la ligne oneway et choisissez Case à cocher comme Type de widget dans la liste des options :

    ../../../_images/checkbox_selected.png
  5. Cliquez sur OK

  6. Entrez en mode édition (si la couche roads n’est pas déjà en mode édition)

  7. Cliquez sur l’outil identify Identifier des entités

  8. Cliquez sur la même route principale que vous avez choisie précédemment

Vous verrez maintenant que l’attribut oneway a une case à cocher à côté de lui indiquant true (coché) ou false (non coché).

5.3.4. ★★★ Essayez vous-même

Définissez un outil de formulaire plus approprié pour le champ highway.

5.3.5. ★★★ Essayez vous-même : Créer des données de test

Vous pouvez également concevoir votre propre formulaire personnalisé en partant de zéro.

  1. Créez une simple couche de points appelé « test-data » avec deux attributs :

    • name (text)

    • age (entier)

    ../../../_images/new_point_layer.png
  2. Capturez quelques points sur votre nouvelle couche en utilisant les outils de numérisation afin que vous ayez un peu de données pour jouer avec. Il se peut qu’on vous présente le formulaire de capture d’attribut généré par défaut par QGIS chaque fois que vous capturez un nouveau point.

    Note

    Vous pouvez devoir désactiver l’Accrochage s’il est encore activé des tâches précédentes.

    ../../../_images/new_point_entry.png

5.3.6. ★★★ Follow Along: Creating a New Form

Nous voulons maintenant créer notre propre formulaire personnalisé pour la phase de saisie des données attributaire. Pour ce faire, vous devez avoir installé QT Designer (nécessaire uniquement pour la personne qui crée les formulaires).

  1. Démarrer QT Designer.

  2. Dans la boîte de dialogue qui apparaît, créez une nouvelle boîte de dialogue :

    ../../../_images/qt_new_dialog.png
  3. Cherchez l”Outil boîte sur le côté gauche de votre écran (par défaut). Il contient un élément appelé Édition de ligne.

  4. Cliquez sur cet élément et faites-le glisser dans votre formulaire. Cela crée une nouvelle Édition de ligne dans le formulaire.

  5. Avec le nouvel élément d’édition de ligne sélectionné, vous verrez ses propriétés le long du côté de votre écran (par défaut sur la droite) :

    ../../../_images/qt_line_edit.png
  6. Appelez-le name

  7. En utilisant la même approche, créez une nouvelle spinbox et donnez-lui le nom age.

  8. Ajoutez une Etiquette intitulée Ajouter une nouvelle personne en caractères gras (regardez dans les propriétés de l’objet pour savoir comment la définir). Vous pouvez également définir le titre du dialogue lui-même (plutôt que d’ajouter un label).

  9. Ajoutez un Label à chacun de vos widgets Line Edit et Spin Box.

  10. Organisez les éléments comme bon vous semble.

  11. Cliquez n’importe où dans votre boîte de dialogue.

  12. Trouvez le bouton Mettre en page dans un layout de formulaire (dans une barre d’outils le long du bord supérieur de l’écran, par défaut). Votre dialogue s’affichera alors automatiquement.

  13. Définissez la taille maximale du dialogue (dans ses propriétés) à 200 (largeur) par 150 (hauteur).

  14. Votre formulaire devrait maintenant ressembler à ça:

    ../../../_images/qt_example_form.png
  15. Enregistrez votre nouveau formulaire sous le nom de exercise_data/forms/add_people.ui

  16. Lorsque l’enregistrement est terminé, vous pouvez fermer Qt Designer.

5.3.7. ★★★ Follow Along: Associating the Form with Your Layer

  1. Retour à QGIS

  2. Double-cliquez sur la couche test-data dans la liste des couches pour accéder à ses propriétés.

  3. Cliquez sur l’onglet Formulaire d’attributs dans la fenêtre Propriétés de la couche.

  4. Dans la liste déroulante Mise en page de l’éditeur d’attribut, sélectionnez Fournir un fichier-ui.

  5. Cliquez sur le bouton avec les trois points et choisissez le fichier add_people.ui que vous venez de créer :

    ../../../_images/provide_ui_file.png
  6. Cliquez sur OK dans la boîte de dialogue Propriétés de la couche

  7. Passer en mode édition et capturer un nouveau point

  8. Lorsque vous faites cela, on vous présentera votre boîte de dialogue personnalisée (à la place de la boîte de dialogue générique que QGIS crée habituellement).

  9. Si vous cliquez sur un de vos points en utilisant l’outil identify Identifier les entités, vous pouvez maintenant faire apparaître le formulaire en faisant un clic droit dans la fenêtre des résultats d’identification et en choisissant Voir le formulaire des entités dans le menu.

  10. Si vous êtes en mode édition pour cette couche, ce menu contextuel affichera plutôt modifier le formulaire d’attribut, et vous pourrez alors ajuster les attributs dans la nouvelle forme même après la capture initiale.

5.3.8. Conclusion

En utilisant des formulaires, vous vous facilitez la vie lorsque vous modifiez ou créez des données. En modifiant des types d’outil ou en créant entièrement un nouveau formulaire à partir de rien, vous pouvez contrôler l’expérience de quelqu’un qui numérise des nouvelles données pour cette couche, en minimisant les malentendus et les erreurs inutiles.

5.3.9. Pour aller plus loin

Si vous avez complété la section avancée ci-dessus et avez des connaissances en Python, vous voudrez peut-être consulter cette entrée de blog sur la création de formulaires d’entités personnalisées avec la logique Python, qui permet des fonctions avancées, notamment la validation des données, l’autocomplétion, etc.

5.3.10. La suite ?

L’ouverture d’un formulaire pour l’identification d’une entité est une des actions standards que QGIS effectue. Cependant, vous pouvez également le diriger pour effectuer des actions personnalisées que vous définissez. C’est le sujet de la prochaine leçon.