5.3. Lesson: 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. basic Follow Along: Utilisation de la Conception de Formulaires avec QGIS

  1. Select the roads layer in the Layers panel

  2. Enter Edit Mode as before

  3. Open the roads layer’s attribute table

  4. Right-click on any cell in the table. A short menu will appear, that includes the Open form entry.

  5. Click on it to see the form that QGIS generates for this layer

É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. Select the roads layer in the Layers panel

  2. Using the identify Identify Features tool, click on any street in the map.

  3. The Identify Results panel opens and shows a tree view of the fields values and other general information about the clicked feature.

  4. At the top of the panel, check the Auto open form for single feature results checkbox in the options sup: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. Each time you click on a single feature with the Identify tool, its form pops up as long as the Auto open form is checked.

5.3.2. basic Try Yourself Utilisation du formulaire pour modifier des valeurs

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. Using the identify Identify Features tool, click on the main street running through Swellendam:

    ../../../_images/main_street_selected.png
  3. Edit its highway value to be secondary

  4. Exit edit mode and save your edits

  5. Open the Attribute Table and note that the value has been updated in the attributes table and therefore in the source data

5.3.3. moderate Follow Along: Configuration des types de champs du formulaire

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. Open the roads layer’s Properties…

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

    ../../../_images/fields_panel.png
  3. Switch to the Attributes Form tab. You’ll see this:

    ../../../_images/attributes_form.png
  4. Click on the oneway row and choose Checkbox as Widget Type in the list of options:

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

  6. Enter edit mode (if the roads layer is not already in edit mode)

  7. Click on the identify Identify Features tool

  8. Click on the same main road you chose earlier

You will now see that the oneway attribute has a checkbox next to it denoting True (checked) or False (unchecked).

5.3.4. hard Try Yourself

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

Vérifiez vos résultats

5.3.5. hard Try Yourself Création d’un test de données

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

  1. Create a simple point layer named test-data with two attributes:

    • name (text)

    • age (text)

    ../../../_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. hard Follow Along: Création d’un Nouveau Formulaire

Now we want to create our own custom form for the attribute data capture phase. To do this, you need to have QT Designer installed (only needed for the person who creates the forms).

  1. Start 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. Set its name to Name.

  7. Using the same approach, create a new spinbox and set its name to Age.

  8. Add a Label with the text Add a New Person in a bold font (look in the object properties to find out how to set this). Alternatively, you may want to set the title of the dialog itself (rather than adding a label).

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

  10. Find the Lay Out Vertically button (in a toolbar along the top edge of the screen, by default). This lays out your dialog automatically.

  11. Set the dialog’s maximum size (in its properties) to 200 (width) by 100 (height).

  12. Save your new form as exercise_data/forms/add_people.ui

  13. When it’s done saving, you can close Qt Designer

5.3.7. hard Follow Along: Associer un Formulaire à une Couche

  1. Go back to QGIS

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

  3. Click on the Attributes Form tab in the Layer Properties dialog

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

  5. Click the ellipsis button and choose the add_people.ui file you just created:

    ../../../_images/provide_ui_file.png
  6. Click OK on the Layer Properties dialog

  7. Enter edit mode and capture a new 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. If you click on one of your points using the identify Identify Features tool, you can now bring up the form by right clicking in the identify results window and choosing View Feature Form from the context menu.

  10. If you are in edit mode for this layer, that context menu will show Edit Feature Form instead, and you can then adjust the attributes in the new form even after initial capture.

5.3.8. In 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. Further Reading

If you completed the advanced section above and have knowledge of Python, you may want to check out this blog entry about creating custom feature forms with Python logic, which allows advanced functions including data validation, autocompletion, etc.

5.3.10. What’s Next?

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.