Aller au contenu

QGIS 4 : un QGIS basé sur Qt6#

📆 Date de publication initiale : 28 janvier 2025

L'architecture de QGIS pour les nuls#

icône briques différentes

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.

Planning des versions de Qt

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 :

\[\begin{array}{l|rcl} N° majeur version QGIS : & QGIS 2 &= (Qt 4 + Python 2) \\ & QGIS 3 &= (Qt 5 + Python 3) \\ & QGIS 4 & \approx (Qt 6 + Python 3) \end{array}\]

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.

Commenter cet article


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 :

Niveau aventurier dominical : le package dév de l'OSGeo4W#

logo 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 .

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 :

  1. Dans le champ Search, taper qt6-dev-full
  2. Dérouler Desktop
  3. Cliquer sur Skip en regard de qgis-qt6-dev-full jusqu'à obtenir un numéro de version (probablement impair et supérieur d'un chiffre à la version courante mais peu importe)

    OSGeo4W - Select package Qt6

  4. suivant, suivant

  5. cocher les licences (ERDAS, MrSID, Oracle, SZIP...). Notez qu'il est aussi possible de les imprimer de façon à les étudier en détail 🤭.
  6. ☕ ⏳

Une fois l'installation terminée, cherchez et ouvrez QGIS depuis le menu démarrer de votre système à fenêtres :

QGIS dans le menu démarrer de Windows

Une fois QGIS démarré, aller dans le menu À propos pour juger sur pièces de la fraîcheur des dépendances :

QGIS - OSGeo4W Qt6 - Capture d'écran du menu À propos

Niveau aventurier/ère de l'Arche Perdue : l'autoporteur de vcpkg#

logo 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.

  1. Se connecter à son compte GitHub (ou en créer un gratuitement pour l'occasion) et cliquer sur le bouton ci-dessous :

    Aller télécharger un exécutable depuis GitHub

  2. 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.

    GitHub Actions - Jobs du workflow QGIS Windows Qt6

  3. Dans la page qui s'ouvre, cliquer sur qgis-windows-qt6 dans la section Artifacts en bas (encadré vert dans la capture ci-dessous) :

    GitHub Actions - Résumé d'un job du workflow QGIS Windows Qt6

  4. Une fois le téléchargement terminé, Dézipper jusqu'à obtenir un dossier qgis-X.y.z-win64X.y.z correspond à la version que vous avez sélectionnée

  5. Aller dans le dossier bin et lancer le fichier qgis.exe (pensez à activer l'affichage des extensions de fichiers sur Windows, la vie est plus belle).

    Lancer QGIS Qt6 OPENGIS.CH

Si tout se passe bien, on admire le splash screen personnalisé pour l'occasion :

QGIS - Splashscreen Qt6 by OPENGIS.ch

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#

logo console terminal

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 ?#

logo QGIS

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é

QGIS - ColorPicker CMJN QGIS - Plugin incompatible avec Qt 6

Je maintiens un plugin, comment faire pour qu'il soit compatible ?#

logo PyQGIS

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 :

  1. Dans votre environnement Python de développement :

    pip install astpretty tokenize-rt
    
  2. Si vous êtes sur Linux, il faut installer des dépendances supplémentaires :

    sudo apt install python3-pyqt6 python3-pyqt6.qtsvg python3-pyqt6.qsci
    
  3. Télécharger le script sur le projet QGIS sur GitHub

  4. L'exécuter en pointant sur le dossier de votre plugin :

    python pyqt5_to_pyqt6.py /path/to/plugin
    
  5. Tester votre plugin sur une installation de QGIS avec Qt5 et sur une installation de QGIS avec Qt6 en faisant les adaptations nécessaires.

  6. Éditer le fichier metadata.txt et ajouter la ligne :

    metadata.txt d'un plugin explicitement compatible avec Qt6
    [...]
    supportsQt6=True
    [...]
    

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 via qgis.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#

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 #

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

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 et sert principalement aux notifications de réponse. Les commentaires sont automatiquement republiés sur nos réseaux sociaux pour favoriser la discussion. 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 Creative Commons BY-NC-SA 4.0 International Pictogramme Creative Commons Pictogramme Creative Commons BY Pictogramme Creative Commons NC Pictogramme Creative Commons SA