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 bien mise à jour vers la version Qt 5.15. La dernière version de Qt 5 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ésactivez l'utilisation des API C++ obsolètes dans Qt 5.15
L'utilisation d'API obsolètes dans Qt se traduit généralement par un avertissement du compilateur. Vous pouvez également transformer cette utilisation en erreur en définissant la macro C++ ` QT_DISABLE_DEPRECATED_UP_TO ` 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 sur ` 0x050F00`, qui correspond à « 5.15.0 » encodé en nombre hexadécimal.
Par exemple, dans un fichier de projet qmake, définissez la macro comme suit :
DEFINES += QT_DISABLE_DEPRECATED_UP_TO=0x050F00Dans CMake, vous pouvez utiliser `add_compile_definitions` :
add_compile_definitions(QT_DISABLE_DEPRECATED_UP_TO=0x050F00)- Classes C++ obsolètes dans Qt 5.15
- Types Qml obsolètes dans Qt 5.15
- Classes C++ obsolètes de Qt 6
- Types Qml obsolètes dans Qt 6
Vérifiez les modifications apportées aux modules
L'un des objectifs de la version Qt 6 est de maintenir un framework allégé, 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 futures versions de Qt 6, des modules nouveaux ou antérieurs pourront être ajoutés.
- Modules supprimés dans Qt 6.0
- Nouveaux modules dans Qt 6.0
- Modules nouveaux et réintroduits dans Qt 6.1
- Modules nouveaux et réintégrés dans Qt 6.2
- Modifications apportées aux modules Qt dans Qt 6 – liste des modifications par module Qt
Test des régressions graphiques
Les applications QML disposent d’un nouveau backend graphique, que vous devez tester pour détecter d’éventuelles régressions. OpenGL n’est plus garanti par défaut sur les plateformes cibles et vous devez vérifier que votre code graphique produit toujours les effets souhaités.
Il est toujours possible d’utiliser des appels OpenGL dans les applications Qt, mais les API OpenGL ont été déplacées vers le Qt OpenGL module. Le backend graphique des applications « Qt Widgets » reste inchangé par rapport à Qt 5.
- Graphisme
- Modifications apportées à Qt Quick — modifications apportées aux graphismes d’ Qt Quick pouvant affecter les applications Qt 5
Haute résolution (High-DPI)
Qt 6 prend en charge les écrans haute résolution (high-DPI) sur toutes les plateformes et tiendra automatiquement compte de la résolution d’affichage lors de l’utilisation d’API de niveau supérieur telles que Qt Widgets ou Qt Quick. Les applications doivent uniquement fournir des ressources en haute résolution, telles que des images et des icônes. Cette fonctionnalité est toujours activée.
Qt 6 modifie la politique d’arrondi par défaut du facteur d’échelle, en passant de ` Qt::HighDpiScaleFactorRoundingPolicy::Round ` à ` Qt::HighDpiScaleFactorRoundingPolicy::PassThrough `, afin de suivre avec précision les paramètres DPI du système d’exploitation. Les applications utilisant ` Qt Widgets ` peuvent rencontrer des anomalies graphiques lorsque le facteur d’échelle n’est pas un nombre entier, par exemple sous Windows avec un écran configuré à 175 %. Dans ce cas, définissez la politique d’arrondi sur ` Round ` pour rétablir le comportement de Qt 5.
Voir « High DPI » pour plus de détails.
Utilisez les API d’intégration à la plateforme
Qt 6 offre une meilleure intégration avec les API natives des plateformes cibles. Vous pouvez utiliser les API d’intégration de plateforme pour implémenter des comportements natifs non fournis par Qt. Pour Qt 6, vérifiez s’il existe des mises à jour pour la plateforme cible de votre application.
Utilisez l'outil de portage
Un outil basé sur Clazy est disponible pour faciliter le portage de Qt 5 vers Qt 6 : Portage d'applications C++ vers Qt 6 à l'aide des vérifications Clazy.
Pour en savoir plus
- Nouveautés de Qt 6 - modifications apportées aux versions mineures de Qt 6
- Modifications du système de compilation dans Qt 6 - pour compiler Qt 6 à partir du code source
- CMake : compatibilité entre Qt 5 et Qt 6 – comment prendre en charge à la fois Qt 5 et Qt 6 dans CMake
Modifications apportées à QTextStream
La méthode QTextStream::setCodec() a été supprimée dans Qt 6. Utilisez plutôt QTextStream::setEncoding().
© 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.