Sur cette page

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=0x050F00

Dans CMake, vous pouvez utiliser `add_compile_definitions` :

add_compile_definitions(QT_DISABLE_DEPRECATED_UP_TO=0x050F00)

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.

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.

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

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.