Portage vers Qt 6
De nombreux changements ont été apportés à Qt entre la version précédente, Qt 5, et Qt 6. Avant de passer à Qt 6, assurez-vous que votre application Qt 5 est mise à jour vers Qt 5.15. La dernière version de Qt 5 est celle qui présente le moins de changements lors du portage vers Qt 6. Cependant, les API marquées comme dépréciées ou obsolètes dans Qt 5.15 peuvent avoir été supprimées dans Qt 6.
Voici les points à vérifier si vous portez vos applications Qt 5 vers Qt 6.
Désactiver l'utilisation de l'API C++ dépréciée dans Qt 5.15
L'utilisation de l'API dépréciée dans Qt se manifeste généralement sous la forme d'un avertissement du compilateur. Vous pouvez également faire de cette utilisation une erreur en définissant la macro QT_DISABLE_DEPRECATED_UP_TO C++ dans votre système de construction. Pour désactiver toute API dépréciée dans la version 5.15 ou les versions antérieures de Qt, définissez la macro à 0x050F00, ce qui correspond à '5.15.0' encodé sous forme de nombre hexadécimal.
Par exemple, dans un fichier de projet qmake, définissez la macro avec :
DEFINES += QT_DISABLE_DEPRECATED_UP_TO=0x050F00
Dans CMake, vous pouvez utiliser add_compile_definitions :
add_compile_definitions(QT_DISABLE_DEPRECATED_UP_TO=0x050F00)
- Classes C++ obsolètes de Qt 5.15
- Types Qt QML 5.15 obsolètes
- Classes C++ obsolètes de Qt 6
- Qt 6 Types QML obsolètes
Vérifier les changements apportés aux modules
L'un des objectifs de la version 6 de Qt est de maintenir un cadre rationalisé, ce qui implique la suppression de certains modules de Qt 5 dans Qt 6. Dans certains cas, les API d'un module obsolète sont disponibles dans un autre module. Dans les prochaines versions de Qt 6, de nouveaux modules ou des modules antérieurs pourront être ajoutés.
- Modules supprimés dans Qt 6.0
- Nouveaux modules dans Qt 6.0
- Modules nouveaux et restaurés dans Qt 6.1
- Modules nouveaux et restaurés dans Qt 6.2
- Changements apportés aux modules Qt dans Qt 6 - liste des changements par module Qt
Test des régressions graphiques
Les applications QML disposent d'un nouveau backend graphique, que vous devez tester pour détecter les régressions. OpenGL n'est plus garanti par défaut sur les plateformes cibles et vous devez vérifier que votre code graphique crée toujours les mêmes effets que vous souhaitez.
Il est toujours possible d'utiliser les appels OpenGL dans les applications Qt OpenGL, mais les API OpenGL sont déplacées dans le module Qt OpenGL module. Le backend graphique pour les applications Qt Widgets est inchangé par rapport à Qt 5.
- Graphique
- Changements apportés à Qt Quick - changements apportés aux graphiques de Qt Quick qui peuvent affecter les applications Qt 5
Haut-DPI
Qt 6 prend en charge les écrans à haute résolution sur toutes les plateformes et tiendra automatiquement compte de la résolution de l'écran lors de l'utilisation d'API de niveau supérieur telles que Qt Widgets ou Qt Quick. Les applications n'ont qu'à fournir des ressources à haute résolution, telles que des images et des icônes. La fonctionnalité est toujours activée.
Qt 6 modifie la politique d'arrondissement du facteur d'échelle par défaut de Qt::HighDpiScaleFactorRoundingPolicy::Round à Qt::HighDpiScaleFactorRoundingPolicy::PassThrough afin de suivre avec précision les paramètres DPI du système d'exploitation. Les applications qui utilisent Qt Widgets peuvent rencontrer des problèmes graphiques avec des facteurs d'échelle non entiers, par exemple sous Windows avec un affichage configuré à 175 %. Dans ce cas, réglez la politique d'arrondi sur Round pour rétablir le comportement de Qt 5.
Voir High DPI pour plus de détails.
Utiliser les API d'intégration de la plateforme
Qt 6 offre une meilleure intégration avec les API natives des plates-formes cibles. Vous pouvez utiliser les API d'intégration de plateforme pour mettre en œuvre un comportement natif qui n'est pas fourni par Qt. Pour Qt 6, vérifiez les mises à jour de la plate-forme cible de votre application.
Utiliser l'outil de portage
Un outil basé sur Clazy est disponible pour faciliter le portage de Qt 5 à Qt 6 : Porting C++ Applications to Qt 6 using Clazy checks.
Pour en savoir plus
- Quoi de neuf dans Qt 6 - changements dans les versions mineures de Qt 6
- Build System Changes in Qt 6 - pour construire Qt 6 à partir des sources
- CMake : Compatibilité Qt 5 et Qt 6 - comment supporter à la fois Qt 5 et Qt 6 dans CMake
Changements dans QTextStream
La méthode QTextStream::setCodec() a été supprimée dans Qt 6. Utilisez QTextStream::setEncoding() à la place.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.