[FR]Développer Un Plugin Qgis : Ajouter Un Bouton Et Une Fenêtre

Ajouter un bouton dans l’interface de QGIS est souvent la première étape concrète lorsqu’on développe un plugin. C’est ce qui transforme un simple script Python en outil réellement utilisable par l’utilisateur.

Dans ce troisième article du tutoriel, nous allons voir comment ajouter un bouton et afficher une fenêtre dans un plugin QGIS, en nous appuyant sur le code généré par Plugin Builder. Nous prendrons le temps de comprendre les éléments essentiels : la méthode initGui(), les actions (QAction) et le déclenchement du dialogue.

Ce tutoriel s’adresse aux débutants en développement de plugins QGIS, qui souhaitent comprendre comment interagir avec l’interface de QGIS avant d’aller plus loin dans la logique métier.



Ajouter un bouton et afficher une fenêtre dans QGIS

Dans les deux premiers articles, nous avons posé les bases : comprendre ce qu’est un plugin QGIS et créer un plugin vide à l’aide de Plugin Builder. Il est maintenant temps de donner un comportement visible à notre plugin.

Dans cet article, nous allons apprendre à :

  • ajouter un bouton dans l’interface de QGIS,
  • comprendre le code généré par Plugin Builder,
  • afficher une fenêtre (dialog) simple.

L’objectif n’est pas encore de faire quelque chose de complexe, mais de comprendre le mécanisme fondamental de tout plugin QGIS.


Rappel : le plugin généré par Plugin Builder

Lorsque nous avons choisi le template Tool button with dialog, Plugin Builder a déjà préparé beaucoup de choses pour nous :

  • un bouton dans la barre d’outils,
  • un menu dans QGIS,
  • une fenêtre graphique associée.

Même si cela fonctionne déjà, il est essentiel de comprendre comment tout cela est relié.


Le fichier principal du plugin

Ouvrez le fichier Python principal de votre plugin (par exemple mon_premier_plugin.py).

Vous y trouverez une classe principale qui porte le nom du plugin. C’est elle qui pilote tout le comportement.

class MonPremierPlugin:
    def __init__(self, iface):
        self.iface = iface

👉 iface est l’objet qui permet au plugin de dialoguer avec QGIS (menus, couches, messages…).


La méthode initGui() : point d’entrée visuel

La méthode initGui() est appelée automatiquement lorsque le plugin est activé dans QGIS.

C’est ici que sont définis :

  • le bouton dans la barre d’outils,
  • l’entrée de menu,
  • l’action associée.

Extrait typique :

def initGui(self):
    self.action = QAction(
        QIcon(':/plugins/MonPremierPlugin/icon.png'),
        'Mon premier plugin',
        self.iface.mainWindow()
    )
    self.action.triggered.connect(self.run)
    self.iface.addToolBarIcon(self.action)

Même sans comprendre chaque ligne, retenez que :

  • une action est créée,
  • elle est reliée à une méthode (run),
  • elle est ajoutée à l’interface de QGIS.

La méthode run() : quand on clique sur le bouton

La méthode run() est appelée lorsque l’utilisateur clique sur le bouton du plugin.

Dans le template généré, elle sert principalement à afficher une fenêtre.

def run(self):
    self.dlg.show()

👉 À ce stade, le plugin ne fait qu’une chose : ouvrir un dialogue.


📦 Ce que fait vraiment un bouton dans QGIS

Lorsqu’on clique sur un bouton dans QGIS, il ne se passe rien de « magique ».

Un bouton de plugin est simplement un déclencheur : il appelle une fonction Python précise.

Concrètement, le fonctionnement est toujours le même :

  1. le plugin crée une action (QAction),
  2. cette action est associée à une fonction (par exemple run()),
  3. lorsque l’utilisateur clique sur le bouton, QGIS exécute cette fonction.

Dans notre cas, la fonction run() se contente d’afficher une fenêtre. Mais plus tard, cette même fonction pourra :

  • lire des paramètres saisis par l’utilisateur,
  • analyser des couches,
  • lancer des traitements,
  • produire des résultats.

👉 Un bouton QGIS ne fait qu’une chose : lancer du code Python.
Toute la puissance du plugin se trouve dans ce code.


Comprendre la fenêtre (dialog)

La fenêtre affichée est définie dans un fichier .ui, créé avec Qt Designer.

Ce fichier est ensuite chargé en Python, ce qui permet :

  • d’afficher la fenêtre,
  • de récupérer les valeurs saisies par l’utilisateur,
  • de connecter des boutons à du code.

Pour l’instant, nous allons simplement modifier le contenu visuel.


Modifier le texte de la fenêtre

Ouvrez le fichier .ui avec Qt Designer.

Essayez par exemple :

  • de changer le titre de la fenêtre,
  • de modifier un label,
  • d’ajouter un bouton.

Enregistrez le fichier, rechargez le plugin dans QGIS, puis cliquez sur le bouton.

👉 Vous venez de modifier l’interface d’un plugin QGIS sans écrire de code Python.


Tester et recharger le plugin

À chaque modification du code ou de l’interface :

  1. Désactivez le plugin dans le gestionnaire d’extensions
  2. Réactivez-le

Ou utilisez l’option Recharger le plugin si vous avez installé l’extension dédiée.


Erreurs fréquentes à ce stade

  • rien ne se passe au clic → méthode run() non connectée
  • erreur au chargement → faute de casse dans les noms
  • fenêtre vide → fichier .ui mal référencé

Ces problèmes sont normaux et font partie du processus.


Ce que vous avez appris

À l’issue de cet article, vous savez :

  • où est créé le bouton d’un plugin QGIS,
  • comment une action est connectée à du code,
  • comment afficher et modifier une fenêtre.

Vous avez désormais la brique essentielle de tout plugin QGIS interactif.


Et dans le prochain article ?

Dans l’article suivant, nous verrons :

  • comment récupérer des valeurs saisies dans la fenêtre,
  • comment interagir avec les couches QGIS,
  • comment structurer le code pour aller plus loin.

👉 À partir d’ici, votre plugin commence vraiment à devenir utile.


Si cet article vous a intéressé et que vous pensez qu'il pourrait bénéficier à d'autres personnes, n'hésitez pas à le partager sur vos réseaux sociaux en utilisant les boutons ci-dessous. Votre partage est apprécié !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Are you human? Please solve:Captcha