About us Expertises Offer References Contact us Blog
FR EN

Choisir entre Qt 5 et Qt 6 pour votre application Linux embarqué

Qt 6 est sortie depuis un moment. Devriez-vous lancer votre nouveau projet sous Qt 6 ou Qt 5 ? Pour quelle raison rester sur Qt 5 aujourd'hui ?

24/11/2022

Nathanaël Landais

image blog Qt 5 vs Qt 6

Vous démarrez un nouveau projet Linux embarqué et votre choix est posé sur le framework Qt. Qt est sortie en version 6.0 le 8 décembre 2020. Il vient en successeur de la version 5 qui a été développée pendant 8 années.

Refonte de Qt toujours en cours

Si c'est une nouvelle version, alors autant l'utiliser plutôt que de commencer avec Qt 5 ? Ce n'est malheureusement pas si simple ! Qt 6 n'est pas une mise à jour itérative de Qt 5, mais bien une refonte et cette refonte n'est aujourd'hui pas complétement terminée.

Ca ne veut pas dire qu'il ne faut pas utiliser Qt 6, il faut bien évidemment privilégier Qt 6 à Qt 5 dans la mesure du possible. Qt 5 n'est plus développée et les correctifs de bugs ne sont plus publiés en open source (car oui il y en a toujours, c'est inévitable pour un framework de cette dimension). Qt 5 reste maintenu, mais uniquement sous licence commerciale. Si vous souhaitez développer votre application Linux embarqué sous licence open-source (comme je l'explique dans cet article sur Qt et la licence LGPL), vous serez alors contraint de vivre avec les éventuels bugs ou les corriger vous-même.

Mais alors que manque-t-il à Qt 6 ? Un certain nombre de modules, que vous feriez bien de consulter avant de vous lancer dans le développement. Si un ou plusieurs de ces modules vous est indispensable, vous aurez le choix entre chercher une alternative, ou faire votre développement sur Qt 5.
A l'heure où j'écris ces lignes, pratiquement tous les modules ont été portés. Les modules manquants dans la version 6 sont les suivants :

La compatibilité avec votre BSP Yocto

Le choix de la version de Qt peut vous être imposée par le fabricant de votre SOM. Très simplement, si le BSP Yocto fourni par le fabricant est sur une version trop ancienne de Yocto (avant Gatesgarth 3.2), celle-ci ne sera pas compatible avec le layer meta-qt6 et à moins de faire les adaptations nécessaires vous-même, vous n'aurez accès qu'à meta-qt5.

Si c'est votre cas, selon l'avancement de votre projet, envisagez un autre fabricant, ou utilisez Qt 5, toujours très fonctionnel !

Article précédent

Qt Quick vs Qt Widgets

Article suivant

Qt Open Source pour système embarqué – Licence LGPL