Aller au contenu

Utiliser les icônes intégrées de QGIS pour égayer ses plugins#

📆 Date de publication initiale : 19 janvier 2021

Pré-requis :

  • des notions en PyQGIS (Python + Qt + API QGIS)

Intro#

icône PyQT

Avec mon arrivée chez Oslandia, je me remets au développement de plugins pour QGIS alors autant partager de temps en temps quelques cas d’usage 🙂.

Lorsque qu'il s'agit de soigner l'interface graphique, c'est souvent fastidieux, notamment de concevoir ou de trouver des éléments graphiques. Bien souvent les menus sont dénués d'icônes, au détriment de la convivialité, de l'accessibilité et de la lisibilité.

menu plugin cadastre Pourtant c'est quand même plus joli avec des icônes

Recycler les icônes de l'interface de QGIS#

Une solution est d'utiliser les images déjà embarquées dans QGIS. Elles sont déjà chargées, intégrées dans le thème de QGIS et sont suffisamment génériques pour bien des cas de figure. La plupart des images sont répertoriées dans le Resource Collection File enfin le fichier de ressources quoi.

Par exemple, lorsque l'on ajoute un bouton d'aide à son menu, on peut pointer sur celle du manuel d'aide de QGIS :

# imports
from qgis.core import QgsApplication
from qgis.PyQt.QtGui import QIcon

[...]

class PluginGeotribu:

    [...]

    # quelque part dans la fonction de définition du menu de notre plugin
    def initGui(self):

        [...]

        self.action_menu_help = QAction(
            QIcon(QgsApplication.iconPath("mActionHelpContents.svg")),
            self.tr("Help") + "...",
            self.iface.mainWindow(),
        )
        self.iface.addPluginToMenu("Le nom du plugin", self.action_menu_help)

On obtient alors :

menu plugin help

C'est déjà plus sympa et intégré non ?

Note

De la même façon, il est aussi possible d'utiliser les ressources d'un autre plugin en adaptant le chemin avec le préfixe correspondant. Mais il faut pouvoir s'assurer que cet autre plugin soit toujours installé avec le nôtre (en l'indiquant comme dépendance par exemple).

Maintenant, vous n'avez plus aucune excuse pour ne pas mettre de belles icônes dans vos fenêtres et menus ! Avec modération bien sûr 😉. Merci à Etienne pour le rappel sur QgsApplication.iconPath dont "l'avantage, c'est que ca gère le thème de QGIS (Dark, Grey or Normal)".

Suggestion : prévisualiser les icônes intégrées


Auteur#

Julien Moura#

Portrait Julien Moura

Géographe "sigiste" de formation, j'ai travaillé sur différentes thématiques et types de structures : gestion des déchets en milieu urbain à Madagascar, foncier d'intérêt général auprès de l'EPF de La Réunion, organisation et la résilience urbaine face aux risques naturels à Lima pour l'IRD, gouvernance et ouverture des données à Isogeo.

Je travaille désormais à Oslandia.
Féru des dynamiques de contributions, je participe activement à Geotribu depuis fin 2011.

Licence Beerware #

Ce contenu est sous licence Beerware (Révision 42).
Les médias d'illustration sont potentiellement soumis à d'autres conditions d'utilisation.

Réutiliser, citer l'article

Tant que vous conservez cette licence :

  • vous pouvez faire ce que vous voulez de ce contenu
  • si vous rencontrez l'auteur/e un jour et que vous pensez que ce contenu vaut le coup, vous pouvez lui payer un coup en retour

Citer cet article :

"Plugin QGIS : utiliser les icônes intégrées" publié par Julien MOURA sur Geotribu - Source : https://www2.geotribu.fr/articles/2021/2021-01-19_pyqgis_utiliser_icones_integrees/

Commentaires

Afin de favoriser les échanges constructifs, merci de préférer le pseudonymat à l'anonymat. Pour rappel, l'adresse mail n'est pas exposée publiquement. Consulter la page sur la confidentialité et les données personnelles.
Une version minimale de la syntaxe markdown est acceptée pour la mise en forme des commentaires.
Propulsé par Isso.

Ce contenu est sous licence Beerware Pictogramme BeerWare