Aller au contenu

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

📆 Date de publication initiale : 19 janvier 2021

Mots-clés : QGIS | PyQGIS | développement | plugin | interface graphique

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 :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
# 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 d'abord travaillé sur différentes thématiques et types de structures : la gestion des déchets en milieu urbain à Madagascar, le foncier d'intérêt général auprès de l'EPF de La Réunion, l'organisation et la résilience urbaine face aux risques naturels à Lima pour l'IRD.

C'est en m'intéressant à la gouvernance et à l'ouverture des données géographiques que je travaille à Isogeo quelques années. L'occasion d'asseoir mes compétences en développement et gestion de produit informatique. En 2020, je deviens indépendant (In Geo Veritas) puis rejoins les rangs d'Oslandia.

Féru des dynamiques de contributions, je participe activement à Geotribu depuis fin 2011 et, comme ça me manquait trop, j'ai décidé de lancer sa renaissance en 2020.

Licence Beerware #

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

Détails

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://preview-pullrequest-421--geotribu-preprod.netlify.app/articles/2021/2021-01-19_pyqgis_utiliser_icones_integrees/


Dernière mise à jour: 24 septembre 2021
Créé: 24 septembre 2021
Contributions à cette page : Julien Moura

Commentaires

Une version minimale de la syntaxe markdown est acceptée pour la mise en forme des commentaires.
Propulsé par Isso.
Retour en haut de la page