QGIS 4 : un QGIS basé sur Qt6#
Date de publication initiale : 28 janvier 2025
L'architecture de QGIS pour les nuls#
Comme tout logiciel, open source ou propriétaire, QGIS repose sur d'autres logiciels ou "bibliothèques" logicielles. Des dépendances dont la principale est Qt.
On n'est pas là pour trop entrer dans les détails alors je vous ai fait un schéma simplifié de ce qui compose le logiciel QGIS. Oui, oui il est simplifié.
flowchart TD
Q{QGIS} ====> |Dépend de| B(((Qt)))
Q -->|Dépend de| C(API géospatiales)
Q <--->|Optionnellement| P[Python]
M(plugins) -->|Dépendent de| P:::pointilles
B:::blocimportant --> S{"Interface graphique et système exploitation<br/>(et donc toutes les API système)"}
C -->|dépend de| E[GEOS]
C -->|dépend de| T[/Autres trucs moins connus\]
Q --> T
C -->|dépend de| D[/GDAL\]
D -->|dépend de| E
D -->|dépend de| G
D -->|dépend de| F
D -->|dépend de| Z@{ shape: docs, label: "Environ 73% des <br/>bibliothèques de drivers <br/>de formats de données <br/>géo-quelque-chose"}
C -->|dépend de| F[PROJ]
C -->|dépend de| G@{ shape: cyl, label: "Clients BDD<br/>liboci, libpq, <br/>libspatialite..." }
classDef blocimportant fill:#ff0000,font-weight:bold
classDef pointilles fill:stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
Vous avez remarqué le rond rouge au milieu ? Eh bien c'est le cadriciel (framework) Qt (prononcez "kuté" ou comme "cute" qui signifie mignon en anglais) retenu par le projet QGIS pour s'interfacer avec les API graphiques et techniques des différents systèmes d'exploitation.
Actuellement, c'est la version 5 de Qt qui est utilisée dans QGIS 3. Il se trouve qu'elle est arrivée en fin de vie en... mai 2025 selon la documentation officielle.
La dernière fois que QGIS a changé de version majeure de Qt et celle de Python, QGIS est aussi passé à la version majeure supérieure. Ce qui nous donne l'équation savante suivante :
Mais pour l'instant, rien n'est encore décidé sur l'incrémentation du numéro majeur de version de QGIS. Le suspense est à son comble.
Dans cet article, je vous propose donc deux façons de télécharger une version de QGIS 3 basée sur Qt6 afin de vous laisser tester par vous-même, avec un petit détour du côté de la mise à jour de vos plugins.
Installer QGIS basé sur Qt6 sur Windows#
Si vous travaillez sur le principal système d'exploitation des utilisateur/ices de QGIS, vous avez l'embarras du choix pour tester :
- une installation avec l'OSGeo4W : relativement classique mais plus risquée pour votre environnement de travail
- la récupération d'une version autoporteuse génére avec vckpg : plus périlleuse mais plus isolée du reste de votre système. Personnellement, c'est celle que je préfère .
Niveau aventurier dominical : le package dév de l'OSGeo4W#
On ne présente plus l'installateur "réseau" (OSGeo4W Network Installer comme on dit sur les sites non traduits de projets internationaux) que nous avons mis en avant à plusieurs reprises ici et là.
Ce petit coquin d'inspiration linuxienne infiltré derrière les lignes windowsiennes pour permettre une installation de tout et n'importe quoi ce qui a trait aux projets OSGeo à QGIS sur Windows avec une finesse de sélection des dépendances justement.
Allez c'est parti !
Télécharger l'installateur OSGeo4W
Lancer en mode administrateur puis suivre les étapes habituelles jusqu'à la fenêtre Select packages :
- Dans le champ
Search
, taperqt6-dev-full
- Dérouler
Desktop
-
Cliquer sur
Skip
en regard deqgis-qt6-dev-full
jusqu'à obtenir un numéro de version (probablement impair et supérieur d'un chiffre à la version courante mais peu importe) -
suivant, suivant
- cocher les licences (ERDAS, MrSID, Oracle, SZIP...). Notez qu'il est aussi possible de les imprimer de façon à les étudier en détail .
Une fois l'installation terminée, cherchez et ouvrez QGIS depuis le menu démarrer de votre système à fenêtres :
Une fois QGIS démarré, aller dans le menu À propos
pour juger sur pièces de la fraîcheur des dépendances :
Niveau aventurier/ère de l'Arche Perdue : l'autoporteur de vcpkg#
OPENGIS.ch, en tête de pont sur le packaging multi-plateforme avec vcpkg, diffusait un lien de téléchargement pour Windows sur leurs réseaux sociaux dès mars dernier. Depuis, l'entreprise Suisse à qui l'on doit QField a continué son travail autour d'une chaîne de compilation et packaging plus moderne et multi-plateforme dans le cadre de la proposition communautaire d'évolution (QEP) n°292 pour aboutir le mois dernier. Le compte-rendu dans la liste de mail au PSC donne une idée du travail accompli.
Depuis les choses ont bien avancé et QGIS est compilé/packagé avec Qt6 à chaque modification du code source (commit) sur GitHub.
-
Se connecter à son compte GitHub (ou en créer un gratuitement pour l'occasion) et cliquer sur le bouton ci-dessous :
-
Cliquer sur la première ligne (cadre vert dans la capture ci-dessous) pour ouvrir les résultats de la dernière exécution. Notez qu'il est possible de filtrer sur une branche en particulier (menu déroulant détouré en bleu dans la capture ci-dessous). Par exemple, pour n'afficher que les jobs Windows Qt6 pour QGIS 3.40 ayant réussi.
-
Dans la page qui s'ouvre, cliquer sur
qgis-windows-qt6
dans la sectionArtifacts
en bas (encadré vert dans la capture ci-dessous) : -
Une fois le téléchargement terminé, Dézipper jusqu'à obtenir un dossier
qgis-X.y.z-win64
oùX.y.z
correspond à la version que vous avez sélectionnée -
Aller dans le dossier
bin
et lancer le fichierqgis.exe
(pensez à activer l'affichage des extensions de fichiers sur Windows, la vie est plus belle).
Si tout se passe bien, on admire le splash screen personnalisé pour l'occasion :
Dans l'ombre de la DSI
Notez que cette version téléchargeable et autoporteuse est idéale pour les environnements où les droits d'installation sont limités. Si on vous demande d'où ça sort, dites que vous avez lu ça sur arcOrama .
Sur Linux#
Comment vous dire... c'est moins fluide, c'est plus... Linux quoi !
Les packages liés à Qt n'ont pas encore tous été portés sur Qt6 ou ne sont pas encore présents dans les dépôts officiels. Il est donc nécessaire de compiler QGIS avec Qt6 soi-même en repartant parfois de loin dans l'arbre des dépendances. Si l'aventure vous motive, vous pouvez suivre le guide de compilation de QGIS sur le wiki du projet. Notez que c'est nettement plus simple de le faire sur une distribution comme Fedora qui utilise des packages plus récents plutôt que sur une distribution comme Debian qui privilégie la stabilité.
Attachez vos ceintures de lignes de commande, préparez vos merguez électroniques, ça va basher et faire chauffer vos CPU et barrettes de sh RAM !
Sur MacOS#
Compte-tenu des coûts associés pour l'obtention d'un MacBook Pro M4 Pro, forcément indispensable pour ce tutoriel, cette section est réservée aux abonnés premium de Geotribu.
Quoi de neuf dans QGIS Qt 6 ?#
Allez, on lance, on prend le temps d'essayer de reconnaître des têtes connues sur le splash screen de dév
et hop !
Alors, qu'est-ce que ça change ?
- le thème de l'interface s'aligne automatiquement sur les paramètres du système (sombre ou clair)
- on peut choisir des couleurs en CMJN et qu'elles soient conservées dans les PDF générés par QGIS, ainsi que le profil d'impression
- peu de plugins sont compatibles et on ne peut pas filtrer dessus donc c'est assez compliqué de savoir lequel on peut installer
- on peut voter sur un plugin directement depuis l'interface
- on a une sensation de vitesse à l'utilisation mais c'est peut-être lié au fait qu'il n'y a aucun plugin d'installé
- il y a parfois des messages d'erreur et des crashs mais c'est bon pour le karma d'aventurier
- sur Linux, le système d'affichage Wayland est désormais pleinement supporté
Je maintiens un plugin, comment faire pour qu'il soit compatible ?#
Si votre plugin n'utilise pas ou peu Qt ou vous avez suivi de bonnes pratiques de développement pour votre plugin, notamment l'import de tout ce qui est PyQt via PyQGIS et non directement, il n'y aura pas grand chose à faire. Sinon, il faut prévoir un travail de migration et de tests. Plus tôt vous commencez, mieux ce sera.
Une procédure de migration a été ajoutée il y a quelques semaines dans le cookbook PyQGIS wiki du projet GitHub de QGIS pour documenter l'usage d'un script de migration et rendre un plugin compatible à la fois avec QGIS Qt5 and Qt6 :
-
Dans votre environnement Python de développement :
-
Si vous êtes sur Linux, il faut installer des dépendances supplémentaires :
-
Télécharger le script sur le projet QGIS sur GitHub
-
L'exécuter en pointant sur le dossier de votre plugin :
-
Tester votre plugin sur une installation de QGIS avec Qt5 et sur une installation de QGIS avec Qt6 en faisant les adaptations nécessaires.
-
Éditer le fichier
metadata.txt
et ajouter la ligne :
Il y a forcément quelques limites au script, notamment :
- la gestion des imports : il recommande souvent d'importer Qt depuis PyQGIS (
from qgis.PyQt.QtCore import Qt
) mais c'est rarement pertinent. Ceci dit, si vous utilisez des outils classiques de contrôle statique du code (flake8, ruff, isort, etc.), ils se chargeront de nettoyer le superflu. Si vous n'en utilisez pas, pensez à consulter . - il ne gère pas bien les imports de PyQt qui sont hors du scope de PyQGIS. Par exemple, si vous utilisez
QtMultimedia
il va forcer l'import viaqgis.PyQt
alors que ce module PyQt là n'y est pas référencé. Cela mènera alors à une erreur d'import.
La documentation sur cette migration est inexistante ou très difficile à trouver. Quand on m'a répondu "la seule documentation, à ce jour, hormis le wiki d'Étienne, c'était la description de la PR de Nyall", je me suis dit qu'on est proche du délit d'initiés ! Mais cela n'a finalement rien d'étonnant pour l'instant car cela ne concerne encore que les développeurs actuellement autour duquel gravite l'écosystème QGIS.
Conclusion#
Derrière le titre putaclic, l'article est l'occasion de glisser quelques éléments de compréhension d'un projet logiciel : dépendances, dynamique communautaire, forge logicielle... et les enjeux de "packaging" pour mettre tout cela à disposition des utilisateurs dans de bonnes conditions de livraison. Il y a plusieurs manières d'empaqueter et distribuer le même code source. Ici, OSGeo4W et vcpkg.
Que QGIS passe en version 4 ou pas, le changement de version majeure de Qt n'est pas une révolution pour les utilisateurs et utilisatrices finaux du logiciel, mais une évolution. D'ailleurs, que cela se fasse sans rupture majeure est le signe de la maturité du projet QGIS qui a tout pour s'imposer dans des parcs informatiques de niveau industriel qui aiment la stabilité.
Auteur·ice#
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 #
Ce contenu est sous licence Creative Commons International 4.0 BY-NC-SA, avec attribution et partage dans les mêmes conditions, sauf dans le cadre d'une utilisation commerciale.
Les médias d'illustration sont potentiellement soumis à d'autres conditions d'utilisation.
Réutiliser, citer l'article
Vous êtes autorisé(e) à :
- Partager : copier, distribuer et communiquer le matériel par tous moyens et sous tous formats
- Adapter : remixer, transformer et créer à partir du matériel pour toute utilisation, exceptée commerciale.
Citer cet article :
"Testez QGIS 4 avant tout le monde" publié par Julien MOURA sur Geotribu sous CC BY-NC-SA - Source : https://geotribu.fr/articles/2025/2025-01-28_tester-qgis-4-futur-sig-open-source/
Commentaires
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 Creative Commons BY-NC-SA 4.0 International