Nouveautés de Qt 6.7
Nouvelles fonctionnalités de Qt 6.7
Qt Core Module
- Ajout de QSpan, la réimplémentation par Qt de std::span de C++20.
- Ajout des classes Qt::strong_ordering, Qt::weak_ordering, et Qt::partial_ordering qui sont une implémentation compatible C++17 des classes
std::*_ordering. - Ajout de macros d'aide pour implémenter de manière pratique les opérateurs relationnels dans les classes Qt. Ces macros fournissent operator<=>() dans les versions C++20, et reviennent aux six opérateurs relationnels dans les versions C++17.
- Application de ces macros d'aide aux classes QDate, QTime, QDateTime, QTimeZone, et qfloat16.
- Ajout de la nouvelle classe QAtomicScopedValueRollback.
- Ajout de Qt::Key_micro pour remplacer éventuellement le mal nommé Key_mu : il s'agit du micro signe U+00B5, et non de la lettre grecque mu, U+03BC ou U+039C.
- QLocaleLes fonctions name(), bcp47Name() et uiLanguages() permettent désormais aux appelants de spécifier le séparateur à utiliser entre les balises dans les noms.
- QLocale localise désormais (dans la mesure du possible) les parties relatives au fuseau horaire des dates formatées.
- L'analyse de la date (et de l'heure de la date) des années à deux chiffres permet maintenant à l'appelant de contrôler le siècle dans lequel ces années sont sélectionnées.
- QCalendar dispose désormais d'une fonction matchCenturyToWeekday(), pour prendre en charge l'analyse des années à deux chiffres.
- QDateTime accepte désormais les paramètres TransitionResolution, ce qui permet aux appelants de contrôler la manière dont les transitions de fuseau horaire sont résolues. La résolution par défaut d'une date dans un intervalle est maintenant valide, mais son time() et éventuellement son date() correspondent maintenant à ce que toMSecsSinceEpoch() rapporte, plutôt qu'à ce qui a été demandé.
Qt D-Bus Module
- L'en-tête <qdbusmacros.h> a été supprimé. Utilisez <qtdbusglobal.h> à la place.
- La nouvelle fonction QDBusAbstractInterface::setInteractiveAuthorizationAllowed() permet d'activer le drapeau
ALLOW_INTERACTIVE_AUTHORIZATIONpour les appels asynchrones.
Qt Graphs Module
Qt Graphs3D
- L'api de données ne nécessite pas la création de chaque élément de données dans la mémoire du tas.
- Ajout d'une fonctionnalité de rendu d'image.
Qt Graphs2D
- Aperçu technologique des graphiques 2D.
- Contient un support initial pour les graphiques en barres, en lignes et en nuages de points.
Qt GRPC Module
- Ajout de la fonctionnalité d'utilisation d'intercepteurs pour personnaliser le comportement des appels et des flux de QtGRPC. Vous pouvez maintenant sous-classer QGrpcClientInterceptor et surcharger les méthodes d'interception souhaitées.
- Introduction des classes QGrpcServerStream, QGrpcClientStream et QGrpcBidirStream. Elles sont utilisées pour effectuer des appels de streaming client, serveur et bidirectionnel respectivement.
Note : Le module Qt GRPC est en avant-première technologique.
Qt GUI Module
- Ajout des implémentations QIconEngine qui fournissent un accès aux bibliothèques d'icônes natives sur Windows 10 et 11, macOS et iOS, et Android.
- Ajout d'un nouveau type d'événement QEvent::ChildWindowAdded et QEvent::ChildWindowRemoved, avec une classe QChildWindowEvent correspondante pour informer les fenêtres de l'ajout et de la suppression de fenêtres enfants.
- Activation du chargement des polices d'application variables sur toutes les plateformes (nécessite DirectWrite ou FreeType backend sur Windows).
- QFont a obtenu de nouvelles API pour travailler avec variable fonts.
- Le nouveau type QFont::Tag peut être utilisé pour spécifier l'axe avec les nouvelles API de support des polices variables, et avec le support for typographical features qui a été introduit comme API préliminaire dans Qt 6.6 et qui est maintenant finalisé.
Qt Multimedia Module
- Le backend multimédia FFmpeg est maintenant lié dynamiquement avec FFmpeg sur Windows. Les binaires FFmpeg préconstruits sont fournis par l'installateur en ligne. Les applications Windows qui utilisent le backend FFmpeg doivent maintenant intégrer les binaires FFmpeg dans leur programme d'installation à l'aide de windeployqt.
- Les nouvelles propriétés MediaPlayer::autoPlay et Video::autoPlay peuvent être utilisées pour démarrer automatiquement la lecture lorsqu'une source de média a été définie.
- La propriété QCameraDevice a une nouvelle propriété correctionAngle. Cette propriété représente l'angle de rotation nécessaire pour compenser la rotation physique de la caméra par rapport à son orientation d'origine.
Qt Network Module
- Ajout de la classe QHttpHeaders pour représenter les en-têtes HTTP.
- Ajout de la prise en charge de std::chrono pour définir les délais de transfert avec QNetworkRequest et QNetworkAccessManager.
- Ajout de la classe QNetworkRequestFactory (aperçu technologique). Cette classe est une classe de commodité pour la création de requêtes réseau.
- Ajout des classes QRestAccessManager et QRestReply (aperçu technologique). Ces classes sont des wrappers de commodité adaptés aux cas d'utilisation RESTful.
Qt OPC UA Module
- Ajout des nouvelles classes QOpcUaHistoryEvent et QOpcUaHistoryReadEventRequest pour permettre la lecture d'événements historiques.
- Ajout de la nouvelle classe QOpcUaGenericStructHandler et des classes de données associées pour prendre en charge le décodage et l'encodage des structures OPC UA génériques.
Qt Protobuf Module
- Ajout du nouveau sérialiseur qui implémente la fonctionnalité de sérialisation et de désérialisation JSON pour les classes basées sur QProtobufMessage.
- Ajout du support des champs 'optionnels' dans le générateur Qt Protobuf. Si le champ de message est marqué comme "optionnel", il obtient les méthodes clear<fieldName> et has<fieldName> en plus du champ normal.
- Les champs Enum générés par le générateur Qt Protobuf respectent désormais la casse de la première lettre. Auparavant, le générateur mettait en majuscule les noms des champs d'énumération générés.
Note : Le module Qt Protobuf est en avant-première technologique.
Module Qt QML
- De nouvelles fonctionnalités ont été ajoutées à QML Language Server: formatage, complétions sémantiques et d'extraits de code, renommage des usages, et paramétrage de la génération de fichiers dans CMake via QT_QML_GENERATE_QMLLS_INI.
- Le contexte de traduction d'un fichier QML peut être défini à l'aide de la commande
pragma Translator - Vous pouvez maintenant déclarer QML_CONSTRUCTIBLE_VALUE et QML_STRUCTURED_VALUE sur les types de valeurs et construire des objets de ces types à partir de QML. En fait, vous pouviez déjà le faire depuis Qt 6.5, mais c'est maintenant officiellement supporté.
Qt Quick Compilateur
- Les liaisons et les fonctions qui écrivent les propriétés des types de valeur peuvent maintenant être compilées en C++.
- Le chaînage optionnel peut maintenant être compilé en C++.
- for..in iteration peut maintenant être compilé en C++
Qt Quick Module
- Ajout de la propriété TextEdit.textDocument.source pour le chargement à partir d'un fichier, des fonctions save() et saveAs() pour l'écriture. Elles sont destinées à remplacer XMLHttpRequest dans les cas d'utilisation de traitement de texte.
- Ajout de la propriété cursorSelection à TextEdit et TextArea pour inspecter et modifier les propriétés du texte sélectionné.
- Mise à jour de l'exemple de l'éditeur de texte pour démontrer ces fonctionnalités.
- Ajout d'un nouveau moteur de rendu de texte qui donnera de meilleurs résultats pour le rendu de textes très volumineux. Il peut être sélectionné en réglant renderType sur
Text.CurveRendering. - Les classes de texte ont reçu de nouvelles API pour travailler avec variable fonts.
- Le rectangle peut maintenant avoir différentes valeurs radii on each corner .
- Ajout d'un support préliminaire pour l'intégration de QWindows dans la scène Qt Quick, ainsi que d'une propriété parent sur Window, pour permettre de définir le parent visuel d'une Window.
- Les propriétés focusReason et focusPolicy de Control ont été déplacées vers Item.
- Ajout de QQuickRhiItem comme alternative moderne à QQuickFramebufferObject. Cela permet de créer des objets QQuickItem personnalisés qui rendent des graphiques 3D via n'importe quelle API graphique accélérée par le matériel et prise en charge par l'interface matérielle de rendu de Qt, c'est-à-dire OpenGL, Vulkan, Direct3D ou Metal.
- Ajout d'un nouvel exemple QQuickRenderControl qui utilise QRhi et qui est donc entièrement portable et fonctionne avec toutes les API 3D prises en charge. Cet exemple montre comment rediriger le contenu de Qt Quick dans une texture de manière multiplateforme.
Qt Quick Module de contrôle
- Ajout des fonctions suivantes qui prennent des arguments fortement typés :
- pushItem()
- pushItems()
- popToItem()
- popToIndex()
- popCurrentItem()
- replaceCurrentItem()
- Contrairement aux fonctions push, pop et replace, celles-ci peuvent être compilées en C++ par le compilateur QML.
Qt Quick Module Formes
- Le Curve Renderer et la propriété associée preferredRendererType sont maintenant officiellement supportés et ne sont plus considérés comme expérimentaux.
- La propriété pathHints a été ajoutée pour caractériser les formes. Elle peut être utilisée par le moteur de rendu pour optimiser le traitement et le rendu des trajectoires.
- Les formes ont maintenant une taille implicite basée sur le rectangle de délimitation de la forme, et seront positionnées de manière appropriée dans les mises en page. Les propriétés fillMode, horizontalAlignment et verticalAlignment ont été ajoutées pour modifier le comportement de la forme lorsque l'élément a une taille explicite différente de la taille implicite.
- L'outil svgtoqml a été ajouté en tant qu'aperçu technologique. Il s'agit d'un outil qui peut être utilisé pour convertir un fichier SVG en code QML. Il est actuellement considéré comme expérimental et ne prend en charge qu'un sous-ensemble de ce que Qt SVG prend en charge.
Qt Quick Module Timeline
- Le sous-module QtQuick.Timeline.BlendTrees ajoute de nouvelles API pour permettre de mélanger plusieurs animations chronologiques.
Qt Quick Module 3D
- QQuick3DRenderExtension Le module 3D est une nouvelle classe permettant d'implémenter des extensions de rendu côté application, ce qui signifie que les utilisateurs peuvent désormais étendre le pipeline de rendu de QtQuick3D sans modifier le moteur de QtQuick3D. Avec la nouvelle API semi-publique fournie par QtQuick3D et l'interface matérielle de rendu Qt (QRhi), le code de rendu personnalisé peut désormais être inséré dans le pipeline de rendu de QtQuick3D, soit pour être rendu dans le cadre de la passe de rendu principale, soit en tant qu'enregistrement de rendu autonome. Les résultats des enregistrements de rendu autonomes peuvent être mis à la disposition des extensions précédentes, qui peuvent être contrôlées par l'ordre dans lequel les extensions sont déclarés. Les extensions de rendu autonomes peuvent également être exposées en tant que fournisseurs de texture pour les éléments Texture, ce qui signifie que leur résultat peut être utilisé avec d'autres types QtQuick3D qui consomment le type Texture de QtQuick3D, comme les matériaux, les effets, etc.
- Les classes de la famille QSSG sont documentées et sont proposées en tant qu'API avec des promesses de compatibilité limitées. Les classes Qt Graphs fournissent un accès et des aides utiles pour interagir avec les types internes de QtQuick3D. Les classes QSSG peuvent être divisées en deux groupes principaux. Le premier groupe fournit l'accès à l'état nécessaire pour effectuer un rendu personnalisé dans la scène QtQuick3D avec QRhi, tandis que le second groupe de classes fournit l'accès aux éléments de rendu de QtQuick3D, et des aides qui permettent de modifier, de prendre ou de re-rendre ces éléments de rendu en utilisant la même infrastructure que celle utilisée par QtQuick3D en interne.
- QSSGRenderExtension - Implémentation du backend pour les extensions de rendu.
- QSSGRenderContextInterface - Classe agrégée des sous-systèmes utilisés en interne par QtQuick3D.
- QSSGRhiContext QSSGRhiGraphicsPipelineState QSSGRhiSamplerDescription Classe de commodité QRhi utilisée par QtQuick3D.
- QSSGFrameData - Données par image utilisées par les extensions de rendu.
- QSSGRenderHelpers QSSGModelHelpers, , et - Classes d'aide pour l'accès, la configuration et le rendu de renderables. QSSGCameraHelpers QSSGRenderExtensionHelpers QtQuick3D
- CustomMaterial a de nouvelles propriétés sourceAlphaBlend et destinationAlphaBlend.
- Texture : nouvelles propriétés textureProvider et tilingModeDepth.
- View3D Les propriétés explicitTextureWidth, explicitTextureHeight, et effectiveTextureSize ont été ajoutées.
Qt Quick Module de physique 3D
- HeightFieldShape: Prise en charge de l'utilisation du type d'image QML comme source via la propriété image.
- ConvexMeshShape: Prise en charge de l'utilisation de QQuick3DGeometry comme source via la propriété geometry.
- TriangleMeshShape: Prise en charge de l'utilisation de QQuick3DGeometry comme source via la propriété geometry.
- PhysicsWorld:
- Ajout des propriétés reportKinematicKinematicCollisions et reportStaticKinematicCollisions qui activeront respectivement les rapports de collision cinématique-kinématique et statique-kinématique.
- Prise en charge de la définition du nombre de threads de simulation.
- PhysicsNode: Ajout de la prise en charge du filtrage des collisions. Il est maintenant possible de spécifier des ID de groupes pour les nœuds et d'ignorer les collisions entre eux.
- PhysicsBody: Ajout de la prise en charge de la désactivation de la simulation d'un corps via la propriété simulationEnabled.
Qt Serial Bus Module
- Ajout d'une méthode à QCanDbcFileParser, qui permet d'analyser les fichiers DBC avec un encodage autre que UTF-8.
Module Qt Sql
- L'en-tête <qsql.h> a été supprimé. Utilisez <qtsqlglobal.h> à la place.
Qt WebEngine Module Qt Sql
- Ajout de nouvelles APIs QWebEngineWebAuthUXRequest et QML type WebEngineWebAuthUXRequest pour supporter la vérification de l'utilisateur FIDO2 et le credential résident.
- Ajout d'une nouvelle api QWebEngineDesktopMediaRequest pour permettre la sélection de la source pour la capture d'écran de bureau.
- Ajout de WebEngineDriver pour automatiser le test des sites web à travers les navigateurs. WebEngineDriver est basé sur ChromeDriver.
- Ajout de QWebEngineUrlRequestInfo::requestBody pour accéder au corps d'une requête à l'aide de l'API QIODevice.
- Ajout des paramètres forceDarkMode (QML) et ForceDarkMode (C++) pour permettre le rendu automatique de tous les contenus web à l'aide d'un thème sombre.
- Ajout des signaux QWebEngineProfile::clearHttpCacheCompleted et QQuickWebEngineProfile::clearHttpCacheCompleted.
Qt Widgets Module
- Ajout d'une classe QRhiWidget (en aperçu technologique) pour le rendu des graphiques 3D via n'importe quelle API graphique accélérée par le matériel et prise en charge par l'interface matérielle de rendu de Qt, c'est-à-dire OpenGL, Vulkan, Direct3D ou Metal.
- QCheckBox Nouveau signal checkStateChanged qui émet le nouvel état de contrôle sous la forme d'une valeur d'enum Qt::CheckState sans risque pour le type.
- QDateTimeEdit Une nouvelle propriété timeZone a été ajoutée.
- Sur les systèmes fonctionnant sous Windows 11 et plus, le nouveau style de widget Windows 11 est utilisé par défaut. Ce style prend en charge le mode sombre de Windows.
Qt SVG Module
- Ajout du support de certains éléments du standard SVG 1.1. Les éléments sont Masque, Symbole, Marqueur, Motif, Filtre et Primitives de filtre (feMerge, feColorMatrix, feGaussianBlur, feOffset, feComposite, feFlood).
- Ajout du drapeau QtSvg::Options pour activer ou désactiver le rendu des nouveaux éléments.
- Ajout de setters et getters pour QtSvg::Options pour QSvgRenderer et QSvgWidget. Les nouvelles fonctionnalités sont activées par défaut.
Outils
Qt Widgets Designer
- Qt Widgets Designer écrit désormais les valeurs d'énumération entièrement qualifiées dans les fichiers
.uiafin de prendre en charge les énumérations scopées et Qt for Python. La prise en charge de la lecture de ces valeurs a été reportée aux versions 6.6.1 et 6.5.4.
Changements au niveau des plates-formes
Plates-formes de bureau
Windows
- Ajout du style Windows 11
- Ajout de QNativeInterface::QWindowsScreen qui permet d'accéder à la poignée sous-jacente d'un QScreen sous Windows.
macOS
- macOS 14 est maintenant une plateforme de construction et de cible supportée.
Client Wayland sous Linux
- Ajout de QNativeInterface::QWaylandScreen qui permet d'accéder à l'objet Wayland sous-jacent d'un QScreen.
WebAssembly
- Ajout de la prise en charge du dépôt (drag-and-drop). Qt enverra désormais des événements de dépôt lorsque l'utilisateur déposera du contenu sur les fenêtres de l'application.
- OpenGL ES 3 / WebGL2 est maintenant la valeur par défaut, avec un retour à OpenGL ES2 / WebGL 1.
- La version d'Emscripten a été mise à jour à 3.1.50.
Plates-formes mobiles
Android
- Re-factorisation du code Java du plugin Android qui consiste à :
- Simplifier l'architecture et la relation entre les différentes classes (par exemple, entre QtActivity, QtActivityLoader, et QtActivityDelegate).
- Déplacement des classes QtLoader hors du paquetage public bindings.
- Suppression de l'utilisation de la réflexion.
- Ajout d'un support préliminaire pour les fenêtres enfants pour Android afin d'être cohérent avec Qt et ses autres QPA. En conséquence, QScreen::grabWindow() n'est temporairement pas supporté pour le moment.
- Définir Android 14 comme la version maximale de la plateforme supportée, et les niveaux de SDK et de cible de la plateforme par défaut à API 34.
- Définir la version Android NDK prise en charge à r26b (26.1.10909125) et JDK à 17.
- Alignement des exemples de la catégorie Mobile sur iOS.
- Ajout de QNativeInterface::QAndroidScreen qui permet d'accéder à l'identifiant d'affichage Android d'un QScreen.
- Ajout de la prise en charge de l'utilisation de ndk-stack avec androidtestrunner pour imprimer joliment les rapports de crash des tests.
- Ajout de la variable CMake QT_ANDROID_DEPLOYMENT_TYPE pour définir explicitement le type de déploiement pour le paquet Android.
- Réécriture globale et mise à jour de la documentation de Qt pour la plateforme Android.
- Introduction de fonctionnalités permettant d'utiliser la puissance de Qt dans les projets Android :
- Qt Quick View Android Class pour utiliser Qt Quick dans le code Java ou Kotlin (aperçu technologique).
- Qt Tools for Android Studio pour Android Studio (aperçu technologique).
iOS
- iOS 17 est désormais une plateforme cible prise en charge.
Plateformes embarquées
Boot to Qt
- La prise en charge de Yocto 4.3 (Nanbield) a été ajoutée.
- Support ajouté pour les hôtes de développement ARM Linux.
- Le support de Squish a été inclus dans les images cibles.
- Les niveaux de support pour le matériel cible ont été mis à jour avec de nouvelles cartes supportées pour Tier 3 :
- Amazon AWS EC2 ARM64
- Kit de développement NVIDIA Jetson AGX Orin
- NXP i.MX8M Nano LPDDR4 EVK (remplace la variante DDR4 EVK)
- Kit de développement Qualcomm Robotics RB5
- TI SK-AM69
VxWorks
- Ajout de la prise en charge de VxWorks 23.09 en tant qu'aperçu technologique.
Changements dans le système de construction
- Les en-têtes Qt C++ contiennent maintenant des métadonnées pour l'outil IWYU.
- CMake : Vous pouvez maintenant modifier les arguments pour les outils *deployqt dans qt_generate_deploy_app_script(), qt_deploy_runtime_dependencies() en définissant les DEPLOY_TOOL_OPTIONS.
- CMake : qt_add_library() prend maintenant en compte la valeur de la variable BUILD_SHARED_LIBS. Si la variable est définie, elle a une priorité plus élevée que la logique de détection du type de bibliothèque dans qt_add_library() lors de l'ajout des cibles de la bibliothèque.
- CMake : qt_standard_project_setup() vous permet maintenant de définir la langue native de l'interface utilisateur de votre application, ainsi que les langues dans lesquelles l'interface utilisateur est traduite. Ceci est ensuite repris par les appels de qt_add_translations() pour générer des fichiers .ts et .qm qui correspondent aux langues données, générant un fichier .ts 'pluriel seulement' pour la langue native.
- CMake : Vous pouvez maintenant passer plusieurs cibles à qt_add_translations() pour extraire les traductions. Alternativement, vous pouvez laisser qt_add_translations() collecter toutes les cibles d'un projet (via la nouvelle fonction qt_collect_translation_source_targets()), avec l'option d'exclure les cibles non désirées au niveau du répertoire ou de la cible.
- CMake : qt_add_translations() a été déplacé hors de l'aperçu technologique.
WebOS
- Qt 6.7 a été vérifié pour fonctionner avec LG webOS OSE 2.25.0(Qt pour webOS).
Liste des modifications de l'API
Ces pages contiennent une vue d'ensemble des changements d'API dans Qt 6.7 :
© 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.