Nouveautés de Qt 6.5
Modules nouveaux et réintroduits dans Qt 6.5
Qt 6.5 ajoute les modules et outils suivants :
- Qt Quick Effect Maker - Un outil permettant de créer des effets de shader hautement performants pour Qt Quick.
- Qt Quick Effects - Un module contenant des « MultiEffect », permettant d’appliquer un ou plusieurs Graphical Effects simples à une « Qt Quick » Item.
- Qt Quick 3D Physics - Un moteur physique à utiliser avec Qt Quick 3D. Ce module n’est plus en préversion technologique.
- Qt Qml Core - Un module qui expose diverses Qt Core API à QML.
Modules nouveaux et réintroduits en préversion technologique
Remarque : la stabilitédes API et des ABI n’est pas garantie.
- Qt LocationMap permet d’afficher des cartes 2D dans une application Qt Quick. MapView inclut des gestionnaires d’entréeQt Quick pour implémenter les fonctionnalités interactives classiques (zoom, panoramique, inclinaison).
- Qt GRPC Prend en charge la communication avec les services gRPC à l’aide de classes générées à partir des descriptions de services issues des spécifications .proto de protobuf.
- Qt Protobuf Prend en charge la génération, la sérialisation et la désérialisation de classes basées sur Qt à partir de spécifications .proto de protobuf.
Nouvelles fonctionnalités de Qt 6.5
Qt Core Module
- QTimeZone peut désormais regrouper un « Qt::TimeSpec » et, le cas échéant, un décalage dans une représentation temporelle allégée qui unifie les différentes API de QDateTime et QDate qui prenaient soit un « QTimeZone », soit un « Qt::TimeSpec » et un décalage.
- Introduction d’une API d’autorisations d’application permettant aux applications de vérifier ou de demander des autorisations pour les fonctionnalités nécessitant le consentement de l’utilisateur avant leur utilisation.
- Nouveau backend de traçage multiplateforme au format CTF (Common Trace Format).
- QBindable peut désormais être construit à partir de n’importe quelle propriété disposant d’un signal NOTIFY. Cela vous permet d’intégrer des propriétés existantes non liables à des propriétés liables.
- La fonction CMake ` qt_generate_deploy_app_script ` accepte désormais de préférence un argument appelé `OUTPUT_SCRIPT`. Le passage de l’ancienne variable `FILENAME_VARIABLE` est déprécié.
Qt GUI Module
- Réintroduction des classes ` QWindowsMimeConverter ` et ` QUtiMimeConverter ` pour la gestion du glisser-déposer et des données du presse-papiers dans des formats spécifiques à chaque plateforme sous Windows, macOS et iOS.
- QVulkanInstance active désormais par défaut les périphériques physiques de portabilité Vulkan. Cela est nécessaire pour fonctionner avec les versions récentes de MoltenVK sur les plateformes Apple. Ajout d’un indicateur NoPortabilityDrivers permettant de désactiver cette fonctionnalité.
- L’infrastructure de rendu Vulkan utilise désormais VK_EXT_debug_utils à la place des extensions obsolètes VK_EXT_debug_report et VK_EXT_debug_marker.
- QTextLayout::glyphRuns() peut désormais renvoyer l’index de chaîne correspondant à chaque glyphe lorsque cela est demandé. Cette fonctionnalité est accessible via la nouvelle fonction QGlyphRun::stringIndexes().
- Les éléments de la liste des cases à cocher peuvent désormais être lus et écrits en HTML ainsi qu’en Markdown, conversions comprises.
- Ajout de la fonction ` QGuiApplication::setBadgeNumber()` pour fournir à l’utilisateur des informations sur le nombre de messages non lus ou autres. Le badge s’affiche en superposition sur l’icône de l’application dans le Dock sous macOS, sur l’icône de l’écran d’accueil sous iOS ou sur la barre des tâches sous Windows.
Qt Quick Le module
- TableView prend désormais en charge la modification des cellules à l’aide d’un délégué d’édition.
- TableView prend désormais en charge le redimensionnement des lignes et des colonnes à l’aide de la souris.
- TableView Prend désormais en charge la définition explicite de la taille des lignes et des colonnes.
- TableView Dispose désormais d’un nouveau signal : `
layoutChanged()`. Ce signal peut être utilisé, par exemple, pour repositionner des éléments superposés. - TableView Prise en charge des sélections multiples.
- Ajout de la prise en charge de la spécification de facteurs de fusion RVB et alpha distincts dans un ` QSGMaterial`.
- Le graphe de scène « Qt Quick » utilise désormais automatiquement une mise en cache persistante sur disque des pipelines graphiques ou du bytecode de shader au format intermédiaire, en fonction de la plateforme et de l’API graphique 3D utilisée. Cela devrait réduire le temps consacré à la création du pipeline graphique lors des exécutions suivantes de l’application. De plus, ` QQuickGraphicsConfiguration ` permet de contrôler explicitement si ces données doivent être écrites et d’où elles doivent être lues. Cela permet des cas d’utilisation avancés, tels que la fourniture d’un fichier de cache prérempli avec une application ou un appareil, ce qui accélère également le premier démarrage.
- PinchHandler comporte de nouvelles propriétés groupées « scaleAxis » et « rotationAxis », offrant plusieurs nouvelles valeurs, notamment la propriété «
activeValue» qui est nouvelle dans tous les groupes d’axes de gestionnaires. Il dispose également des propriétés « activeTranslation » et « persistentTranslation » que « DragHandler » possédait déjà. - DragHandlerLes propriétés «
xAxis» et «yAxis» disposent désormais de nouvelles propriétés « activeValue ». - PinchHandlerLa propriété activeScale (qui s’appelait auparavant
scale) n’est plus limitée à la plage comprise entre minimumScale et maximumScale: ces limites s’appliquent uniquement à persistentScale. De même, la propriété activeRotation (auparavantrotation) n’est plus limitée à la plage comprise entre minimumRotation et maximumRotation. Ces limites s’appliquent de la même manière pour les gestes de pincement sur les pavés tactiles natifs que sur les écrans tactiles. - TapHandler::exclusiveSignals Il est désormais possible de rendre exclusifs les signaux « singleTapped » et « doubleTapped ».
Module d’animation Qt Labs
- BoundaryRule dispose désormais d’un signal « returnedToBounds ».
Qt Quick Controls Le module
- TreeViewDelegate prend désormais en charge la modification des nœuds de l’arborescence
- Le style « Material » a été mis à jour vers « Material 3 ».
- Plusieurs contrôles ont fait l'objet de mises à jour visuelles ; il est donc recommandé de vérifier l'apparence de votre application et de l'adapter en conséquence :
- De nouvelles API ont été ajoutées :
- Material.containerStyle contrôle le style du conteneur utilisé par le contrôle cible. Il peut être associé à n'importe quelle fenêtre ou n'importe quel élément, mais seuls TextField et TextArea le prennent en charge par défaut.
- Material.roundedScale contrôle le rayon des coins arrondis utilisés sur le contrôle cible. Il peut être associé à n’importe quelle fenêtre ou à n’importe quel élément, mais seuls les contrôles suivants le prennent en charge par défaut :
- Le style iOS est terminé
- Les nouveaux contrôles implémentés pour le style iOS dans la version 6.5 sont les suivants :
Qt Test Module
- Ajout de la méthode ` QTest::currentTestResolved()` qui renvoie `true` si le test a échoué ou a été ignoré. Elle peut remplacer ` QTest::currentTestFailed()` comme condition à tester lors du retour d'une fonction d'aide.
- QTest::mouseRelease() et mouseClick() peuvent désormais être utilisés pour tester les doubles clics, en spécifiant un délai réaliste, au cas où vous auriez besoin de vérifier un état intermédiaire entre les événements. Sinon, mouseDClick() reste plus pratique.
Qt Widgets Le module
- QKeySequenceEdit dispose de deux nouvelles propriétés : maximumSequenceLength permet aux applications de contrôler la durée d’une séquence de touches. finishingKeyCombinations définit les combinaisons de touches qui mettent fin à l’enregistrement.
- Ajout de la prise en charge du rendu stéréoscopique à ` QOpenGLWidget`, également applicable à tout ` QGraphicsView ` s’appuyant sur une fenêtre d’affichage ` QOpenGLWidget `. Contrairement à QOpenGLWindow ou au QGLWidget (désormais supprimé) dans Qt 5 et 4, QOpenGLWidget nécessite une prise en charge explicite de cette fonctionnalité via des API dédiées, car dans ce cas, les applications n’effectuent pas directement le rendu dans la fenêtre native et ne disposent donc pas du même contrôle sur les tampons de dessin actifs qu’avec QOpenGLWindow.
Qt Positioning Module
- Introduction de ` SatelliteSource ` : une API QML pour ` QGeoSatelliteInfoSource`.
Qt Serial Bus Module
- Introduction des classes ` QCanSignalDescription`, ` QCanMessageDescription ` et ` QCanUniqueIdDescription `. Ces classes permettent de définir un ensemble de règles pour l’encodage ou le décodage des messages du bus CAN.
- Introduction de la classe ` QCanFrameProcessor `. Cette classe permet de décoder les données CAN reçues ( QCanBusFrame ) en une carte de paires clé-valeur et de composer un message CAN ( QCanBusFrame ) à partir d’une carte de paires clé-valeur.
- Introduction de la classe ` QCanDbcFileParser `. Cette classe sert à analyser les fichiers DBC et à générer des descriptions de messages, qui peuvent ensuite être utilisées dans ` QCanFrameProcessor`.
Toutes les nouvelles classes sont expérimentales et susceptibles d’être modifiées.
Qt Network Module
- Introduction de la classe ` QHttp1Configuration`. Cette classe permet de configurer le nombre maximal de connexions utilisées par hôte lors de l’utilisation de HTTP 1 (valeur par défaut : 6).
- QNetworkRequest Dans Qt for WebAssembly, l’attribut `UseCredentialsAttribute` a été ajouté, permettant d’activer `withCredentials` pour la requête `XMLHttpRequest` sous-jacente.
Module Qt Qml
- Ajout d’une API à QQmlApplicationEngine et QQmlComponent pour charger/créer des éléments QML via leur URI de module et leur nom de type. Contrairement aux fonctions basées sur les URL, cela fonctionne également avec les types C++ et les composants inline.
- QQmlListProperty Les propriétés se comportent désormais davantage comme des tableaux, grâce à la prise en charge de méthodes telles que map(), reduce() et forEach(). Il en va de même pour d’autres types de séquences, comme QList<int> et autres types similaires.
- Extension de qmltc pour prendre en charge davantage de constructions QML, notamment les liaisons de traduction, les composants en ligne, les singletons et les gestionnaires de signaux pour les signaux définis en C++.
- Introduction de la directive `
pragma FunctionSignatureBehavior` pour contrôler l’application des annotations de type sur les fonctions JavaScript. Auparavant, les annotations de type n’étaient que des indications ; ce pragma les rend contraignantes pour une meilleure sécurité des types. - Le compilateur de scripts QML peut désormais gérer des constructions supplémentaires. Notamment :
- console.log() et ses dérivés
letetconst- qsTr() et ses dérivés
- arg() pour les chaînes de caractères
- tous les autres opérateurs bit à bit et de décalage
- l'opérateur d'exponentiation
- Le cache disque QML peut être contrôlé de manière plus fine à l’aide de la nouvelle variable d’environnement
QML_DISK_CACHE. - Ajout d’une nouvelle API CMake publique :
- Introduction d’une politique Qt CMake permettant de définir une meilleure valeur par défaut pour le préfixe de ressource. Si la politique QTP0001 est définie sur
NEW, le moteur QML sera toujours en mesure de trouver vos modules QML dans le système de fichiers de ressources.
- Introduction d’une politique Qt CMake permettant de définir une meilleure valeur par défaut pour le préfixe de ressource. Si la politique QTP0001 est définie sur
- La fonction CMake ` qt_generate_deploy_qml_app_script ` accepte désormais de préférence un argument appelé `OUTPUT_SCRIPT`. Le passage de l’ancienne variable `FILENAME_VARIABLE` est obsolète.
- Introduction de `
pragma NativeMethodBehavior: AcceptThisObject` pour contrôler la manière dont les méthodes natives gèrent l’objet `this` lorsqu’elles sont appelées depuis QML.
Qt Quick Module 3D
- Ajout de la prise en charge automatique du niveau de détail (LOD) pour les modèles. Cela permet de générer des versions simplifiées des maillages lors de l’importation des ressources, puis de sélectionner automatiquement le niveau approprié lors du rendu.
- Ajout de la prise en charge explicite du niveau de détail (LOD) pour contrôler l’opacité des modèles en fonction de la distance de la caméra.
- Ajout d’ ExtendedSceneEnvironment, avec des effets intégrés pour la profondeur de champ, l’étalonnage des couleurs, la lueur, le vignettage, les reflets d’objectif et autres. Ces effets sont appliqués simultanément, ce qui augmente l’efficacité par rapport à des effets de post-traitement individuels et autonomes, chacun nécessitant un ou plusieurs passages de rendu.
- Amélioration de l’ DebugView avec des statistiques de rendu, la liste des maillages et textures actifs, des informations en temps réel sur les passes de rendu, ainsi que des commandes permettant de modifier de manière interactive des paramètres tels que le mode filaire et les remplacements de matériaux depuis DebugSettings.
- Ajout d’ DebugSettings, disponible via SceneEnvironment, permettant un contrôle programmatique des paramètres tels que le mode filaire et les remplacements de matériaux afin de ne rendre que certains aspects des matériaux basés sur la physique.
- Ajout de InfiniteGrid, implémentant une grille infinie dans le plan horizontal avec fondu.
- Ajout d'une prise en charge intégrée et simple du brouillard, disponible via SceneEnvironment. Lorsqu'elle est activée, cette fonctionnalité applique un effet de brouillard en profondeur ou en hauteur lors du rendu des modèles de la scène.
- Amélioration de la sélection lors de l’utilisation du rendu instancié.
- Ajout de la prise en charge de la couleur de sommet pour PrincipledMaterial et SpecularGlossyMaterial
- Sonde de réflexion : prise en charge de l’utilisation d’une texture cubemap fournie à la place du rendu de la scène.
- Les effets de post-traitement ont été améliorés pour réagir correctement aux modifications des URI des fichiers source de shaders lors de l’exécution.
- Ajout d’une mise en cache persistante sur disque des données de shaders de matériaux générées à l’exécution. Cela devrait améliorer les temps de démarrage de l’application et de changement de vue.
Qt WebView Module
- Ajout d’ WebViewSettings pour configurer certaines fonctionnalités courantes d’ WebView.
Qt Multimedia Module
- Le backend multimédia ffmpeg, qui était en préversion technologique dans la version 6.4, devient le backend par défaut pour macOS, Windows, Android et Linux, à l’exception de la distribution Yocto. Les backends natifs restent disponibles avec une prise en charge limitée.
- Introduction de la classe ` QScreenCapture `, qui représente un nouveau type d’entrée vidéo. Il est désormais possible d’acheminer la vidéo depuis ` QScreenCapture ` vers des sorties via ` QMediaCaptureSession `, par exemple ` QMediaRecorder ` ou ` QVideoWidget`. La fonctionnalité de capture d’écran n’est disponible qu’avec le backend multimédia ffmpeg.
Modifications de la plateforme
WebAssembly
- Ajout d’un paquet binaire avec le multithreading activé sur Qt Online Installer.
- Ajout de la prise en charge de l’API d’accès au système de fichiers. Les appels aux boîtes de dialogue de fichiers tels que QFileDialog::getOpenFileContent() et QFileDialog::saveFileContent() utiliseront désormais cette API, si elle est prise en charge par le navigateur.
- Ajout de la prise en charge de l’API d’accès aux polices locales. Qt utilisera désormais les polices locales sur les navigateurs prenant en charge cette API.
- Ajout d’un aperçu technique de la lecture vidéo et de la prise en charge de la caméra à Qt Multimedia.
- Ajout d’une option de configuration pour WebAssembly SIMD : -feature-wasm-simd128
- Ajout d’une option de configuration pour les exceptions WebAssembly : -feature-wasm-exceptions
- Publication de Qt Web Utils avec des fonctions utilitaires et des exemples d’utilisation de Qt sur le Web.
- QTest WebAssembly utilise désormais emrun par défaut. Un script dédié à WebAssembly pilote l’exécution des tests automatiques.
Plateformes de bureau
Windows
- La variable d’environnement QT_WIN_DEBUG_CONSOLE peut être définie pour afficher les messages stdout/stderr dans une fenêtre de console pour les applications GUI lancées depuis la ligne de commande. Définissez-la sur
newouattach.
macOS
- Ajout d’un backend natif pour QMessageBox et QErrorMessage.
Client Wayland sous Linux
- Prend désormais en charge le protocole fractional_scale_v1 pour les compositeurs qui proposent des facteurs d'échelle fractionnaires au client.
Plateformes mobiles
Android
- Mise à jour de Gradle vers la version 8.0 et du plugin Gradle pour Android (AGP) vers la version 7.4.1 (nécessite JDK 11 ou une version ultérieure).
- Mise à jour du NDK vers la version r25b (25.1.8937393).
- La liste des versions prises en charge comprend désormais Android 8.0 (API 26) ou une version ultérieure.
- La version minimale du SDK de compilation de la plateforme a été portée à 33 (QT_ANDROID_API_VERSION).
- Prise en charge d’un plus grand nombre d’opérations sur les URI de schéma de contenu grâce aux fonctionnalités « file/dir » de Qt.
- Corrections et mises à jour de la documentation concernant les « QStandardPaths » dans le cadre du stockage localisé d’Android.
- Affichage des exceptions Qt JNI depuis Qt et non depuis le système Android.
- Correction de la prise en charge du schéma de signature APK v2.
iOS
- Ajout d’une implémentation native pour QColorDialog et QFontDialog.
Plateformes embarquées
Boot to Qt
- Boot to Qt La pile a été mise à jour pour utiliser Yocto 4.1.2 (langdale).
- Prise en charge des hôtes macOS à l’aide de chaînes d’outils basées sur Docker.
- Les niveaux de prise en charge du matériel cible ont été mis à jour ; il existe désormais plusieurs niveaux de prise en charge qui s'appliquent à des combinaisons spécifiques de matériel et de systèmes d'exploitation.
Liste des modifications apportées aux API
Ces pages présentent un aperçu des modifications apportées aux API dans Qt 6.5 :
© 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.