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
Sélectionnez la couche
roads
dans le panneau Couches.Entrez comme avant en Mode d’édition.
Ouvrez la table attributaire de la couche
roads
.Faites un clic-droit sur une cellule dans la table. Un petit menu apparaîtra, avec l’entrée Ouvrir formulaire.
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.
Sélectionnez la couche roads dans le panneau Couches.
En utilisant l’outil Identifier, cliquez sur une rue dans la carte.
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.
At the top of the panel, check the Auto open form for single feature results checkbox in the Identify Settings menu.
Cliquez maintenant sur une des rues de la carte. À coté du dialogue Résultats Identité vous verrez la forme maintenant familière :
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.
Activez le mode d’édition (si ce n’est déjà fait).
En utilisant l’outil identifier des entités, cliquez sur la rue principale qui traverse Swellendam :
Modifier sa valeur highway pour qu’elle soit
secondary
.Quitter le mode édition et enregistrer vos modifications
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.
Ouvrez les Propriétés… de la couche roads
Basculez sur l’onglet Champs. Vous verrez ceci :
Passez à l’onglet Formulaire d’attributs. Vous verrez ceci :
Cliquez sur la ligne
oneway
et choisissez Case à cocher comme Type de widget dans la liste des options :Cliquez sur OK
Entrez en mode édition (si la couche
roads
n’est pas déjà en mode édition)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.
Réponse
For the TYPE, there is obviously a limited amount of types that a road can be, and if you check the attribute table for this layer, you’ll see that they are predefined.
Set the widget to Value Map and click Load Data from Layer.
Select roads in the Label dropdown and highway for both the Value and Description options:
Cliquez sur OK trois fois.
If you use the Identify tool on a street now while edit mode is active, the dialog you get should look like this:
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.
Créez une simple couche de points appelé « test-data » avec deux attributs :
name (text)
age (entier)
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.
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).
Démarrer QT Designer.
Dans la boîte de dialogue qui apparaît, créez une nouvelle boîte de dialogue :
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.
Cliquez sur cet élément et faites-le glisser dans votre formulaire. Cela crée une nouvelle Édition de ligne dans le formulaire.
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) :
Appelez-le
name
En utilisant la même approche, créez une nouvelle spinbox et donnez-lui le nom
age
.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).Ajoutez un Label à chacun de vos widgets Line Edit et Spin Box.
Organisez les éléments comme bon vous semble.
Cliquez n’importe où dans votre boîte de dialogue.
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.
Définissez la taille maximale du dialogue (dans ses propriétés) à
200
(largeur) par150
(hauteur).Votre formulaire devrait maintenant ressembler à ça:
Enregistrez votre nouveau formulaire sous le nom de
exercise_data/forms/add_people.ui
Lorsque l’enregistrement est terminé, vous pouvez fermer Qt Designer.
5.3.7. ★★★ Follow Along: Associating the Form with Your Layer
Retour à QGIS
Double-cliquez sur la couche test-data dans la liste des couches pour accéder à ses propriétés.
Cliquez sur l’onglet Formulaire d’attributs dans la fenêtre Propriétés de la couche.
Dans la liste déroulante Mise en page de l’éditeur d’attribut, sélectionnez Fournir un fichier-ui.
Cliquez sur le bouton avec les trois points et choisissez le fichier
add_people.ui
que vous venez de créer :Cliquez sur OK dans la boîte de dialogue Propriétés de la couche
Passer en mode édition et capturer un nouveau point
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).
Si vous cliquez sur un de vos points en utilisant l’outil 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 dans le menu.
Si vous êtes en mode édition pour cette couche, ce menu contextuel affichera plutôt
, 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.