Quand on débute dans le développement de plugins QGIS, on a souvent l’impression qu’un bouton devrait “faire quelque chose” tout seul. En réalité, un bouton ne fait rien… tant qu’on ne lui explique pas quoi faire.
Dans cet article, nous allons voir comment récupérer les valeurs saisies dans une interface de plugin QGIS, comprendre le rôle des signaux PyQt, et démystifier ce qui se passe réellement lorsqu’on clique sur un bouton. L’objectif n’est pas d’écrire beaucoup de code, mais de comprendre le chemin entre l’interface et la logique du plugin, sans jargon inutile.
Récupérer et utiliser les valeurs saisies par l’utilisateur
Dans les articles précédents, nous avons créé un plugin QGIS minimal, ajouté un bouton dans l’interface et affiché une fenêtre (dialog) lorsqu’on clique dessus. C’est une étape importante… mais pour l’instant, le plugin ne fait encore rien de concret.
Dans cet article, nous allons franchir un cap essentiel : récupérer les valeurs saisies par l’utilisateur dans la fenêtre et les utiliser dans le code Python du plugin.
Mais avant…
Lorsqu’on commence à développer des plugins QGIS, le premier contact avec le code Python peut être intimidant. Fichiers multiples, classes, méthodes, mots-clés inconnus… la tentation est grande de refermer l’éditeur et de se dire : « ce n’est pas pour moi ».
Bonne nouvelle : il n’est pas nécessaire de tout comprendre pour avancer. Lire du code est une compétence progressive, qui s’apprend étape par étape.
Cet article : Comment lire le code d’un plugin QGIS sans paniquer a pour objectif de vous donner une méthode simple et rassurante pour lire le code d’un plugin QGIS sans paniquer.
1. Pourquoi un bouton ne “fait rien” tout seul
Un point fondamental à comprendre :
Une fenêtre Qt n’exécute aucune action par elle-même.
Elle sert uniquement à :
- afficher des champs (texte, listes, cases à cocher…)
- permettre à l’utilisateur de saisir ou choisir des valeurs
Si votre plugin ne lit pas explicitement ces valeurs, rien ne se passe, et c’est normal.
2. Où sont stockées les valeurs de l’interface?
Chaque champ de la fenêtre est un objet Python créé à partir du fichier .ui.
Par exemple :
QLineEdit→ champ de texteQComboBox→ liste déroulanteQCheckBox→ case à cocherQSpinBox→ valeur numérique
Ces objets sont accessibles via l’objet dlg (la fenêtre) :
self.dlg.lineEditself.dlg.comboBoxself.dlg.checkBox
La valeur saisie est stockée dans l’objet, pas ailleurs.
3. Lire une valeur : exemples simples
Champ texte (QLineEdit)
texte = self.dlg.lineEdit.text()
→ texte contient ce que l’utilisateur a tapé.
Liste déroulante (QComboBox)
choix = self.dlg.comboBox.currentText()
→ choix contient l’élément sélectionné.
Case à cocher (QCheckBox)
actif = self.dlg.checkBox.isChecked()
→ actif vaut True ou False.
Champ numérique (QSpinBox)
valeur = self.dlg.spinBox.value()
→ valeur est un nombre.
4. Le moment crucial : quand lire les valeurs
Les valeurs doivent être lues après que l’utilisateur a validé la fenêtre.
Dans un plugin QGIS classique, cela se fait après :
result = self.dlg.exec_()
if result:
# lire les valeurs ici
Lire les valeurs avant
exec_()revient à lire des champs encore vides.
5. Exemple complet minimal
Voici un exemple simple et volontairement minimaliste :
result = self.dlg.exec_()
if result:
texte = self.dlg.lineEdit.text()
choix = self.dlg.comboBox.currentText()
actif = self.dlg.checkBox.isChecked()
print("Texte :", texte)
print("Choix :", choix)
print("Option active :", actif)
À ce stade :
- aucune analyse
- aucun traitement complexe
- juste la preuve que le plugin récupère bien les informations
Pourquoi rien ne se passe si vous ne lisez pas les valeurs ?
C’est une question fréquente chez les débutants.
Un plugin QGIS n’est pas un formulaire automatique.
Il n’y a pas de magie cachée.
Si vous ne lisez pas explicitement une valeur, elle n’est jamais utilisée.
Cette logique est volontaire : elle vous laisse le contrôle total sur le comportement du plugin.
6. Ce que vous savez faire maintenant
À la fin de cet article, vous savez :
- où sont stockées les valeurs saisies par l’utilisateur
- comment les lire en Python
- quand les lire
- pourquoi rien ne se passe sans cette étape
Dans le prochain article, nous verrons comment transformer ces valeurs en actions concrètes : traitement, calcul, interaction avec les couches QGIS.
➡️ Article suivant : Développer un plugin QGIS – appliquer une logique métier aux valeurs saisies