6.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.

6.3.1. basic Follow Along: Utilisation de la Conception de Formulaires avec QGIS

  • Sélectionnez la couche roads dans la Légende de la carte.

  • Entrez comme avant en Mode d’édition.

  • Ouvrez sa Table attributaire.

  • Faites un clic-droit sur une cellule dans la table. Un petit menu apparaîtra, avec la seule 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.

  • Rendez-vous au menu Préférences ‣ Options.

  • Dans la boîte de dialogue qui apparaît, sélectionnez l’onglet Outils cartographiques.

  • Cochez la cas Ouvrir le formulaire de l’entité....

../../../_images/open_feature_form.png
  • Cliquez sur Ok.

  • Sélectionnez la couche roads dans la Légende de la carte.

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

    mActionIdentify

À la place de la boîte de dialogue normale Identifier, vous verrez le formulaire maintenant familier à la place :

../../../_images/roads_form.png

6.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.

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

  • En utilisant l’outil Identifier, cliquez sur la rue principale qui traverse Swellendam :

../../../_images/main_street_selected.png
  • Modifiez sa valeur highway en secondary.

  • Sauvegardez vos modifications.

  • Sortez du mode d’édition.

  • Ouvrez la Table attributaire et notez que la valeur a été mise à jour dans la table d’attribut et donc dans la donnée source.

Note

Si vous utilisez le jeu de données par défaut, vous trouverez qu’il y a plus d’une route sur la carte nommée Voortrek Street.

6.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.

  • Ouvrez la fenêtre Propriétés de la couche de la couche roads.

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

../../../_images/fields_panel.png
  • Cliquez sur le bouton Édition de ligne sur la même ligne que guilabel:man_made et une nouvelle boîte de dialogue s’ouvrira.

  • Sélectionnez Case à cocher dans la liste des options :

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

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

  • Cliquez sur l’outil Identifier.

  • Cliquez sur la même route principale que vous avez choisie plus tôt.

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

6.3.4. hard Try Yourself

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

Vérifiez vos résultats

6.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.

  • Créez une couche de point simple nommée test-data avec deux attributs :

    • Nom (texte)

    • Âge (texte)

../../../_images/new_point_layer.png
  • 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

6.3.6. hard Follow Along: Création d’un Nouveau Formulaire

Nous voulons maintenant créer notre propre formulaire personnalisé pour la phase de capture des attributs de données. Pour faire cela, vous devez avoir installé Qt4 Designer (uniquement nécessaire pour les personnes qui créent les formulaires). Il devrait être fourni dans vos supports de cours, si vous utilisez Windows. Vous pouvez devoir le chercher si vous utilisez un autre système d’exploitation. Sur Ubuntu, faites ce qu’il suit dans le terminal :

Note

Au moment de l’écriture, Qt5 est la dernière version disponible. Cependant, ce processus requiert spécialement Qt4 et n’est pas nécessairement compatible avec Qt5.

sudo apt-get install qt4-designer

... et il devrait s’installer automatiquement. Autrement, cherchez-le dans le Software Center.

  • Démarrez Designer en ouvrant son entrée Menu démarrer in Windows (ou avec tout autre approche appropriée dans votre système d’exploitation).

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

../../../_images/qt4_new_dialog.png
  • 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) :

../../../_images/qt4_line_edit.png
  • Configurez son nom à Nom.

  • En utilisant la même approche, créez une nouvelle zone de sélection numérique et configurez son nom à Âge.

  • Ajoutez une Étiquette avec le texte Ajouter une nouvelle personne en caractères gras (regardez dans les propriétés de l’objet pour découvrir comment configurer cela). Alternativement, vous pouvez vouloir définir le titre de la même boîte de dialogue (plutôt qu’ajouter une étiquette).

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

  • Trouvez le bouton Poser verticalement (dans une barre d’outils le long du bord supérieur de l’écran, par défaut). Cela pose votre boîte de dialogue automatiquement.

  • Configurez la taille maximale de la boîte de dialogue (dans ses propriétés) à 200 (largeur) sur 100 (hauteur).

  • Sauvegardez votre nouveau formulaire sous exercise_data/forms/add_people.ui.

  • Une fois la sauvegarde faite, vous pouvez fermer le programme Qt4 Designer.

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

  • Retournez sur QGIS

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

  • Cliquez sur l’onglet Champs 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 de points de suspension et choisissez le fichier add_people.ui que vous venez juste de créer :

../../../_images/provide_ui_file.png
  • Cliquez sur OK dans la fenêtre Propriétés de la couche.

  • Passez en mode Édition et numérisez 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 des points en utilisant l’outil Identifier, vous pouvez maintenant faire apparaître le formulaire en faisant un clic-droit sur la fenêtre des résultats d’identité et en choisissant Afficher le formulaire de l’entité dans le menu contextuel.

  • Si vous êtes en mode d’édition pour cette couche, ce menu contextuel montrera à la place Modifier le formulaire de l’entité, et vous pouvez alors modifier les attributs dans le nouveau formulaire, même après leur capture initiale.

6.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.

6.3.9. Further Reading

Si vous avez défini les paramètres avancés ci-dessus et que vous avez des connaissances en Python, je vous invite à consulter cette page de blog <http://tinyurl.com/6tr42rb>`_ sur la création de fonctions personnalisées dans les formulaires avec la logique de Python, cela va vous permettre de réaliser des fonctions avancées comme la validation de données, l’auto complétion, etc.

6.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.