Sur cette page

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 constituent une implémentation compatible C++17 des classes ` std::*_ordering `.
  • Ajout de macros d'aide pour implémenter facilement les opérateurs relationnels dans les classes Qt. Ces macros fournissent l'opérateur <=>() dans les versions C++20 et, par défaut, les six opérateurs relationnels dans les versions C++17.
  • Ces macros d'aide ont été appliquées aux classes QDate, QTime, QDateTime, QTimeZone et qfloat16.
  • Ajout d’une nouvelle classe QAtomicScopedValueRollback.
  • Ajout de la classe ` Qt::Key_micro ` pour remplacer à terme la classe mal nommée `Key_mu` : il s'agit du signe « micro » U+00B5, et non de la lettre grecque mu, U+03BC ou U+039C.
  • QLocaleLes méthodes 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 et heures formatées.
  • L’analyse des dates (et des dates-heures) pour les années à deux chiffres permet désormais à l’appelant de contrôler le siècle au sein duquel ces années sont sélectionnées.
  • QCalendar dispose désormais d’une méthode `matchCenturyToWeekday()`, pour prendre en charge l’analyse des années à deux chiffres.
  • QDateTime accepte désormais les paramètres TransitionResolution, permettant 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-heure se trouvant dans un intervalle est désormais valide, mais ses méthodes time() et éventuellement date() correspondent désormais à ce que renvoie toMSecsSinceEpoch(), plutôt qu’à ce qui a été demandé.

Qt D-Bus Module

Qt Graphs Module

Qt Graphs3D

  • L'API de données ne nécessite pas de créer chaque élément de données dans la mémoire du tas.
  • Ajout de la fonctionnalité de rendu vers une image.

Qt Graphs2D

  • Aperçu technologique des graphiques 2D.
  • Prise en charge initiale des graphiques à barres, linéaires et de nuages de points.

Qt GRPC Module

  • Ajout d’une fonctionnalité permettant d’utiliser des intercepteurs pour personnaliser le comportement des appels et des flux QtGRPC. Vous pouvez désormais créer une sous-classe de QGrpcClientInterceptor et redéfinir les méthodes d’interception souhaitées.
  • Introduction des classes ` QGrpcServerStream`, ` QGrpcClientStream ` et `QGrpcBidirStream`. Celles-ci permettent respectivement d'effectuer des appels client, serveur et de flux bidirectionnel.

Remarque : le module Qt GRPC est en phase de préversion technologique.

Qt GUI Module

  • Ajout d’implémentations de QIconEngine permettant d’accéder aux bibliothèques d’icônes natives sous Windows 10 et 11, macOS, iOS et Android.
  • Ajout de nouveaux types d’événements « QEvent::ChildWindowAdded » et « QEvent::ChildWindowRemoved », accompagnés d’une classe « QChildWindowEvent » correspondante, pour informer Windows lorsque des fenêtres enfants sont ajoutées ou supprimées.
  • Le chargement des polices d’application variables a été activé sur toutes les plateformes (nécessite le backend DirectWrite ou FreeType sous Windows).
  • QFont De nouvelles API ont été mises en place pour fonctionner avec ` variable fonts`.
  • Le nouveau type ` QFont::Tag ` peut être utilisé pour spécifier un axe avec les nouvelles API de prise en charge des polices variables, ainsi qu’avec la classe ` support for typographical features `, qui avait été introduite en tant qu’API préliminaire dans Qt 6.6 et qui est désormais finalisée.

Qt Multimedia Module

  • Le backend multimédia FFmpeg s'intègre désormais dynamiquement à FFmpeg sous Windows. Des binaires FFmpeg précompilés sont fournis via le programme d'installation en ligne. Les applications Windows qui utilisent le backend FFmpeg doivent désormais inclure 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 lancer automatiquement la lecture lorsqu’une source multimédia a été définie.
  • La propriété QCameraDevice dispose d’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 native.

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 d’expiration de transfert avec QNetworkRequest et QNetworkAccessManager.
  • Ajout de la classe ` QNetworkRequestFactory ` (aperçu technologique). Cette classe est une classe de commodité permettant de créer des requêtes réseau.
  • Ajout des classes ` QRestAccessManager ` et ` QRestReply ` (aperçu technologique). Ces classes sont des wrappers pratiques optimisés pour les cas d’utilisation RESTful.

Qt OPC UA Module

Qt Protobuf Module

  • Ajout d’un nouveau sérialiseur implémentant les fonctionnalités de sérialisation et de désérialisation JSON pour les classes basées sur ` QProtobufMessage`.
  • Ajout de la prise en charge des champs « facultatifs » dans le générateur Qt Protobuf. Si un champ de message est marqué comme « facultatif », il dispose des méthodes clear<fieldName> et has<fieldName> en plus de la méthode standard du champ.
  • Les champs d’énumération générés par le générateur Qt Protobuf conservent 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.

Remarque : le module « Qt Protobuf » est en phase de préversion technologique.

Module Qt Qml

  • Ajout de nouvelles fonctionnalités à QML Language Server: mise en forme, complétion sémantique et par extraits de code, renommage des occurrences, et configuration 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 via pragma Translator
  • Vous pouvez désormais déclarer des ` QML_CONSTRUCTIBLE_VALUE ` et des ` QML_STRUCTURED_VALUE ` sur des types de valeur et construire des objets de ces types à partir de QML. En réalité, cela était déjà possible depuis Qt 6.5, mais cette fonctionnalité est désormais officiellement prise en charge.

Qt Quick Compiler

  • Les liaisons et les fonctions qui écrivent des propriétés de types de valeur peuvent désormais être compilées en C++
  • Le chaînage optionnel peut désormais être compilé en C++
  • Les boucles « for..in » peuvent désormais être compilées en C++

Qt Quick Module

  • Ajout de la propriété ` TextEdit.textDocument.source ` pour le chargement à partir d’un fichier, ainsi que des fonctions ` save()` et ` saveAs()` pour l’écriture. Celles-ci sont destinées à remplacer `XMLHttpRequest` dans les cas d’utilisation liés au traitement de texte.
  • Ajout de la propriété ` cursorSelection ` aux méthodes ` TextEdit ` et ` TextArea ` pour inspecter et modifier les propriétés du texte sélectionné.
  • Mise à jour de l’exemple « Text Editor » pour illustrer 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 définissant renderType sur Text.CurveRendering.
  • Les classes de texte disposent désormais de nouvelles API permettant d’utiliser variable fonts.
  • Un rectangle peut désormais avoir différentes propriétés « radii » : on, each et corner.
  • Ajout d’une prise en charge préliminaire de l’intégration de QWindows dans la scène d’ Qt Quick, ainsi qu’une propriété « parent » sur la classe Window, permettant de définir un parent visuel pour une fenêtre.
  • 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 effectuent le rendu de graphiques 3D via n’importe quelle API graphique accélérée par le matériel 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 d’ Qt Quick vers une texture de manière multiplateforme.

Qt Quick Controls Module

Qt Quick Module Shapes

  • Le moteur de rendu Curve et la propriété associée preferredRendererType sont désormais officiellement pris en charge et ne sont plus considérés comme expérimentaux.
  • Ajout de la propriété « pathHints » pour caractériser les formes. Celle-ci peut être utilisée par le moteur de rendu pour optimiser le traitement et le rendu des chemins.
  • Les formes disposent désormais d’une taille implicite basée sur le rectangle englobant 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 lorsqu’une taille explicite, différente de la taille implicite, est attribuée à l’élément.
  • L’outil svgtoqml a été ajouté en tant qu’aperçu technologique. Il s’agit d’un outil permettant de convertir un fichier SVG en code QML. Il est actuellement considéré comme expérimental et ne prend en charge qu’un sous-ensemble des fonctionnalités offertes par Qt SVG.

Qt Quick Timeline Module

  • Le sous-module QtQuick.Timeline.BlendTrees ajoute de nouvelles API permettant de fusionner plusieurs animations de timeline.

Qt Quick Module 3D

  • QQuick3DRenderExtension 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 avoir à modifier le moteur QtQuick3D. Grâce à la nouvelle API semi-publique fournie par QtQuick3D et à l’interface matérielle de rendu Qt (QRhi), du code de rendu personnalisé peut désormais être inséré dans le pipeline de rendu de QtQuick3D, soit pour être rendu dans le cadre du passage de rendu principal, soit sous forme d’enregistrement de rendu autonome. Les résultats des enregistrements de rendu autonomes peuvent être mis à la disposition des extensions précédentes, ce qui peut être contrôlé par l’ordre dans lequel les « extensions » sont déclarées. Les extensions de rendu autonomes peuvent également être exposées en tant que fournisseurs de textures pour les éléments « Texture », ce qui signifie que leur résultat peut être utilisé avec d’autres types d’ QtQuick3D s qui utilisent le type « Texture » de QtQuick3D, comme les matériaux, les effets, etc.
  • La famille de classes QSSG est documentée et proposée sous forme d’API avec des garanties de compatibilité limitées. Les classes Qt Spatial Scene Graph 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 permet d’accéder à l’état nécessaire pour effectuer un rendu personnalisé dans la scène de l’ QtQuick3D à l’aide de QRhi, tandis que le second groupe de classes permet d’accéder aux éléments de rendu de QtQuick3D, ainsi qu’à des fonctions d’aide permettant de modifier, d’extraire ou de ré-effectuer le rendu de ces éléments à l’aide de la même infrastructure que celle utilisée en interne par QtQuick3D.
  • CustomMaterial dispose désormais de nouvelles propriétés « sourceAlphaBlend » et « destinationAlphaBlend ».
  • La classe Texture dispose désormais des nouvelles propriétés textureProvider et tilingModeDepth.
  • View3D Dispose désormais des nouvelles propriétés « explicitTextureWidth », « explicitTextureHeight » et « effectiveTextureSize ».

Qt Quick 3D Physics Module

Qt Serial Bus Module

  • Ajout d’une méthode à ` QCanDbcFileParser`, qui permet l’analyse de fichiers DBC avec un encodage autre que UTF-8.

Module Qt SQL

  • L'en-tête obsolète <qsql.h> a été supprimé. Utilisez <qtsqlglobal.h> à la place.

Qt WebEngine Module

Qt Widgets Module

  • Ajout d’une classe ` QRhiWidget ` (en préversion technologique) pour le rendu de graphismes 3D via n’importe quelle API graphique accélérée par le matériel prise en charge par l’interface matérielle de rendu de Qt, c’est-à-dire OpenGL, Vulkan, Direct3D ou Metal.
  • QCheckBox Un nouveau signal `checkStateChanged` a été ajouté ; il émet le nouvel état de vérification sous la forme d'une valeur d'énumération ` Qt::CheckState ` sans risque de type.
  • QDateTimeEdit Une nouvelle propriété « timeZone » a été ajoutée
  • Sur les systèmes fonctionnant sous Windows 11 et versions ultérieures, 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 de la prise en charge de certains éléments de la norme SVG 1.1. Ces éléments sont : Mask, Symbol, Marker, Pattern, Filter et les 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 méthodes de définition et de récupération pour l’ QtSvg::Options dans QSvgRenderer et QSvgWidget. Les nouvelles fonctionnalités sont activées par défaut.

Outils

Qt Widgets Designer

  • Qt Widgets Le Designer écrit désormais les valeurs d’énumération complètes dans les fichiers ` .ui ` afin de prendre en charge les énumérations avec portée et ` Qt for Python`. La prise en charge de la lecture de ces valeurs a été rétroportée vers les versions 6.6.1 et 6.5.4.

Modifications de la plateforme

Plateformes de bureau

Windows

  • Ajout du style Windows 11
  • Ajout de la méthode ` QNativeInterface::QWindowsScreen ` qui permet d’accéder au descripteur sous-jacent d’une énumération à portée ( QScreen ) sous Windows.

macOS

  • macOS 14 est désormais une version et une plateforme cible prises en charge.

Client Wayland sous Linux

WebAssembly

  • Ajout de la prise en charge du glisser-déposer. Qt envoie désormais des événements de dépôt lorsque l'utilisateur dépose du contenu dans les fenêtres de l'application.
  • OpenGL ES 3 / WebGL2 est désormais la configuration par défaut, avec un repli vers OpenGL ES2 / WebGL 1.
  • Mise à jour de la version d'Emscripten vers la 3.1.50

Plateformes mobiles

Android

  • Refonte du code Java du plugin Android, comprenant :
    • La simplification de l'architecture et des relations entre les différentes classes (par exemple, entre QtActivity, QtActivityLoader et QtActivityDelegate).
    • Le déplacement des classes QtLoader hors du paquet public bindings.
    • Suppression de l'utilisation de la réflexion.
  • Ajout d’une prise en charge préliminaire des fenêtres enfants pour Android afin d’assurer la cohérence avec Qt et ses autres QPA. En conséquence, la méthode QScreen::grabWindow() n’est pour l’instant pas prise en charge.
  • Définition d’Android 14 comme version maximale prise en charge de la plateforme, et du SDK de la plateforme par défaut ainsi que des niveaux cibles sur l’API 34.
  • Définition de la version prise en charge de l'NDK Android sur r26b (26.1.10909125) et du JDK sur 17.
  • Alignement des exemples de la catégorie « Mobile » sur ceux d’iOS.
  • Ajout de la méthode 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 formater de manière lisible les rapports de plantage des tests.
  • Ajout de la variable CMake QT_ANDROID_DEPLOYMENT_TYPE pour définir explicitement le type de déploiement du package Android.
  • Réécriture et mise à jour complètes de la documentation de la plateforme Qt pour Android.
  • Introduction de fonctionnalités permettant d’exploiter la puissance de Qt dans les projets Android :

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.
  • Prise en charge des hôtes de développement ARM Linux.
  • Prise en charge de Squish incluse dans les images cibles.
  • Les niveaux de prise en charge du matériel cible ont été mis à jour avec de nouvelles cartes prises en charge pour le niveau 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.

Modifications du système de compilation

  • Les en-têtes Qt C++ comportent désormais des métadonnées pour l'outil IWYU.
  • CMake : vous pouvez désormais modifier les arguments des outils *deployqt dans les fonctions qt_generate_deploy_app_script() et qt_deploy_runtime_dependencies() en définissant la variable DEPLOY_TOOL_OPTIONS.
  • CMake : la fonction qt_add_library() prend désormais en compte la valeur de la variable BUILD_SHARED_LIBS. Si cette variable est définie, elle a priorité sur la logique de détection du type de bibliothèque de qt_add_library() lors de l’ajout des cibles de bibliothèque.
  • CMake : la fonction qt_standard_project_setup() vous permet désormais de définir la langue native de l’interface utilisateur de votre application, ainsi que les langues dans lesquelles celle-ci est traduite. Ces informations sont ensuite reprises par les appels à qt_add_translations() pour générer des fichiers .ts et .qm correspondant aux langues indiquées, en créant un fichier .ts « au pluriel uniquement » pour la langue native.
  • CMake : vous pouvez désormais passer plusieurs cibles à la fonction `qt_add_translations()` afin d’en extraire les traductions. Vous pouvez également laisser qt_add_translations() collecter toutes les cibles d’un projet (grâce à la nouvelle fonction qt_collect_translation_source_targets()), avec la possibilité d’exclure les cibles indésirables au niveau du répertoire ou de la cible.
  • CMake : la fonction qt_add_translations() n’est plus en préversion technologique.

WebOS

  • La compatibilité de Qt 6.7 avec LG webOS OSE 2.25.0 (Qt pour webOS) a été vérifiée.

Liste des modifications apportées à l'API

Ces pages présentent un aperçu des modifications apportées aux 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.