Nouveautés de Qt 6.5
Modules nouveaux et restaurés 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 shaders performants pour Qt Quick.
- Qt Quick Effects - Un module contenant MultiEffect, pour appliquer un ou plusieurs effets graphiques simples sur un Qt Quick Item .
- Qt Quick 3D Physics - Un moteur physique à utiliser avec Qt Quick 3D. Ce module n'est plus en aperçu technologique.
- Qt Qml Core - Un module qui expose diverses Qt Core API à QML.
Modules nouveaux et restaurés dans l'aperçu technologique
Note : La stabilité des API et ABI n'est pas garantie.
- Qt LocationLe module Map rend des cartes en 2D dans une application Qt Quick. MapView comprend des gestionnaires d'entréeQt Quick pour mettre en œuvre les fonctions interactives typiques (zoom, panoramique, inclinaison).
- Qt GRPC prend en charge la communication avec les services gRPC à l'aide de classes générées sur la base des descriptions de services de protobuf .proto-specifications.
- Qt Protobuf prend en charge la génération, la sérialisation et la désérialisation des classes basées sur Qt à partir de protobuf .proto-specifications.
Nouvelles fonctionnalités de Qt 6.5
Qt Core Le module
- QTimeZone peut désormais intégrer un Qt::TimeSpec et, le cas échéant, un décalage dans une représentation temporelle légère qui unifie les différentes API de QDateTime et QDate qui ont pris soit un QTimeZone, soit un Qt::TimeSpec et un décalage.
- Introduction d'une API pour les autorisations d'application afin de permettre aux applications de vérifier ou de demander des autorisations pour les fonctionnalités qui nécessitent le consentement de l'utilisateur avant d'être utilisées.
- Nouveau backend de traçage multiplateforme au format CTF (Common Trace Format).
- QBindable L'API peut maintenant être construite à partir de n'importe quelle propriété avec un signal NOTIFY. Cela vous permet d'intégrer des propriétés existantes, non liables, avec des propriétés liables.
- La fonction CMake qt_generate_deploy_app_script accepte de préférence un argument appelé OUTPUT_SCRIPT. Passer l'ancien FILENAME_VARIABLE est déprécié.
Qt GUI Module
- Réintroduction des classes QWindowsMimeConverter et QUtiMimeConverter pour gérer le drag'n'drop et les données du presse-papiers dans des formats spécifiques à la plateforme sur Windows, macOS et iOS.
- QVulkanInstance active désormais les périphériques physiques de portabilité Vulkan par défaut. Ceci est nécessaire pour être opérationnel avec les nouvelles versions de MoltenVK sur les plateformes Apple. Un drapeau NoPortabilityDrivers a été ajouté pour vous permettre de ne pas l'activer.
- L'infrastructure de rendu Vulkan utilise maintenant VK_EXT_debug_utils à la place de VK_EXT_debug_report et VK_EXT_debug_marker, qui sont obsolètes.
- QTextLayout::glyphRuns() peut maintenant retourner l'index de la chaîne de caractères correspondant à chaque glyphe lorsque cela est demandé. Cette fonction est disponible via la nouvelle fonction QGlyphRun::stringIndexes().
- Les éléments de listes de cases à cocher peuvent maintenant être lus et écrits en HTML ainsi qu'en Markdown, y compris les conversions.
- Ajout de QGuiApplication::setBadgeNumber() pour fournir à l'utilisateur un retour d'information sur le nombre de messages non lus ou similaires. Le badge sera superposé à l'icône de l'application dans le Dock sous macOS, à l'icône de l'écran d'accueil sous iOS ou à la barre des tâches sous Windows.
Qt Quick Module
- TableView Prise en charge de l'édition de cellules à l'aide d'un délégué d'édition.
- TableView Prise en charge du redimensionnement des lignes et des colonnes à l'aide de la souris.
- TableView Prise en charge de la définition explicite de la taille des lignes et des colonnes.
- TableView un nouveau signal
layoutChanged()a été ajouté. Ce signal peut être utilisé, par exemple, pour repositionner des éléments superposés. - TableView Prise en charge de la multi-sélection.
- Ajout de la prise en charge de la spécification de facteurs de mélange RVB et alpha distincts dans un fichier 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 plate-forme et de l'API graphique 3D utilisée. Cela devrait permettre de réduire le temps consacré à la création du pipeline graphique lors des exécutions ultérieures de l'application. En outre, QQuickGraphicsConfiguration permet de contrôler explicitement si et où ces données sont écrites et chargées. Cela permet des cas d'utilisation avancés tels que l'envoi d'un fichier de cache pré-ensemencé avec une application ou un appareil, ce qui accélère également le premier démarrage.
- PinchHandler a de nouvelles propriétés groupées scaleAxis et rotationAxis, offrant plusieurs nouvelles valeurs, y compris la propriété
activeValuequi est nouvelle dans tous les groupes d'axes de gestionnaires. Il a également obtenu les propriétés activeTranslation et persistentTranslation que DragHandler possédait déjà. - DragHandlerLes propriétés
xAxisetyAxisont été remplacées par activeValue. - PinchHandlerL'adresse activeScale (qui s'appelait auparavant
scale) n'est plus limitée à la plage comprise entre minimumScale et maximumScale: ces limites ne s'appliquent qu'à persistentScale. De même, activeRotation (anciennementrotation) n'est plus limité à la plage comprise entre minimumRotation et maximumRotation. Ces limites sont appliquées de la même manière pour les gestes de pincement du pavé tactile natif que pour les écrans tactiles. - TapHandler::exclusiveSignals Qt Labs vous permet maintenant de rendre les signaux singleTapped et doubleTapped exclusifs.
Le module d'animation de Qt Labs
- BoundaryRule dispose désormais d'un signal returnedToBounds.
Qt Quick Module de contrôle
- TreeViewDelegate Prise en charge de l'édition des nœuds d'arbre
- Le style Material a été mis à jour vers Material 3.
- Plusieurs contrôles ont reçu des mises à jour visuelles, il est donc recommandé de vérifier l'apparence de votre application et de l'adapter en conséquence :
- Une nouvelle API a été ajoutée :
- Material.containerStyle contrôle le style du conteneur utilisé par le contrôle cible. Il peut être attaché à n'importe quelle fenêtre ou é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 par le contrôle cible. Il peut être attaché à n'importe quelle fenêtre ou élément, mais seuls les contrôles suivants le supportent par défaut :
- Le style iOS est terminé
- Les nouveaux contrôles qui ont été implémentés dans le style iOS pour la version 6.5 sont les suivants :
Qt Test Module
- Ajout de QTest::currentTestResolved() qui renvoie un vrai si le test a échoué ou a été ignoré. Cela peut remplacer QTest::currentTestFailed() comme condition à tester au retour d'une fonction d'aide.
- QTest::mouseRelease() et mouseClick() peuvent maintenant être utilisés pour tester les double-clics, en spécifiant un délai d'horodatage réaliste, au cas où vous auriez besoin de vérifier un état intermédiaire entre les événements. mouseDClick Sinon, () reste plus pratique.
Qt Widgets Module
- QKeySequenceEdit a ajouté deux nouvelles propriétés : maximumSequenceLength permet aux applications de contrôler la longueur 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, applicable également à tout QGraphicsView soutenu par un viewport QOpenGLWidget. Contrairement à QOpenGLWindow, ou au QGLWidget maintenant supprimé dans Qt 5 et 4, QOpenGLWidget a besoin d'un support explicite pour cela avec des APIs de support en place, parce que les applications ne rendent pas directement vers la fenêtre native dans ce cas, et n'ont donc pas le même contrôle sur les tampons de dessin actifs qu'ils ont 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 sont utilisées pour fournir un ensemble de règles permettant d'encoder ou de décoder les messages du bus CAN.
- Introduction de la classe QCanFrameProcessor. Cette classe peut être utilisée pour décoder le message QCanBusFrame reçu en une carte de paires clé-valeur et pour composer un message QCanBusFrame à partir d'une carte de paires clé-valeur.
- Introduction de la classe QCanDbcFileParser. Cette classe est utilisée pour 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 peuvent être modifiées.
Qt Network Module
- Introduction de la classe QHttp1Configuration. La classe peut être utilisée pour configurer le nombre maximum de connexions utilisées par hôte lors de l'utilisation de HTTP 1 (valeur par défaut : 6).
- QNetworkRequest Le module Qt pour WebAssembly a gagné l'attribut UseCredentialsAttribute, activant withCredentials pour le XMLHttpRequest sous-jacent.
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 l'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, avec 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 similaires.
- Extension du 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 par le C++.
- Introduction de
pragma FunctionSignatureBehaviorpour 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 exécutoires pour une meilleure sécurité des types. - Le compilateur de scripts QML peut gérer des constructions supplémentaires. En particulier, le compilateur de scripts QML peut gérer des constructions supplémentaires :
- console.log() et ses amis
letetconst- qsTr() et amis
- arg() pour les chaînes de caractères
- tous les opérateurs bitwise et shift restants
- l'opérateur d'exponentiation
- Le cache disque de QML peut être contrôlé de manière plus fine en utilisant la nouvelle variable d'environnement
QML_DISK_CACHE. - Ajout d'une nouvelle API CMake publique :
- Introduction d'une politique CMake Qt pour 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 CMake Qt pour 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 de préférence un argument appelé OUTPUT_SCRIPT. Passer l'ancien FILENAME_VARIABLE est déprécié.
- Introduction de
pragma NativeMethodBehavior: AcceptThisObjectpour contrôler la façon dont les méthodes natives gèrent l'objetthislorsqu'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 et de choisir automatiquement le niveau approprié lors du rendu.
- Ajout de la prise en charge du niveau de détail explicite (LOD) pour contrôler l'opacité des modèles en fonction de la distance de la caméra.
- Ajout de ExtendedSceneEnvironment, avec des effets intégrés pour la profondeur de champ, l'étalonnage des couleurs, la lueur, la vignette, le reflet de l'objectif et d'autres. Ces effets sont exécutés ensemble, ce qui augmente l'efficacité par rapport aux effets de post-traitement individuels et autonomes, chacun nécessitant une ou plusieurs passes de rendu.
- Amélioration de DebugView avec des statistiques de rendu, la liste des maillages et des textures actifs, des informations sur les passes de rendu en direct, ainsi que des commandes permettant de basculer interactivement les paramètres, tels que le mode wireframe et les substitutions de matériaux, à partir de DebugSettings.
- Ajout de DebugSettings, disponible via SceneEnvironment, permettant un contrôle programmatique des paramètres tels que le mode wireframe et les dérogations de matériaux pour ne rendre que certains aspects des matériaux physiques.
- Ajout de InfiniteGrid, implémentant une grille infinie dans le plan horizontal avec fondu enchaîné.
- Ajout d'un support intégré de brouillard simple, disponible via SceneEnvironment. Lorsqu'il est activé, il applique un effet de brouillard en profondeur ou en hauteur lors du rendu des modèles dans la scène.
- Amélioration de la prise en charge lorsque le rendu instancié est utilisé.
- Ajout de la prise en charge de la couleur des vertex pour PrincipledMaterial et SpecularGlossyMaterial
- Sonde de réflexion : ajout de la prise en charge de l'utilisation d'une texture cubemap fournie au lieu du rendu de la scène.
- Les effets de post-traitement ont été améliorés pour réagir correctement aux changements dans les URI des fichiers sources des shaders au moment 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 au moment de l'exécution. Cela devrait améliorer les temps de démarrage de l'application et de changement de vue.
Qt WebView Module
- Ajout de WebViewSettings pour configurer certaines des fonctionnalités communes de WebView.
Qt Multimedia Module
- Le backend média ffmpeg, étant un aperçu technologique dans la version 6.4, devient la valeur par défaut pour macOS, Windows, Android, et Linux à l'exception de la distribution Yocto. Les backends natifs sont toujours disponibles avec un support limité.
- Introduction de la classe QScreenCapture qui est un nouveau type d'entrée vidéo. Il est possible de diriger la vidéo de QScreenCapture à travers QMediaCaptureSession vers des sorties, par exemple QMediaRecorder ou QVideoWidget. La fonctionnalité de capture d'écran n'est disponible qu'avec le backend média ffmpeg.
Changements au niveau de la plateforme
WebAssembly
- Ajout d'un paquet binaire avec multithreading activé à Qt Online Installer.
- Ajout de la prise en charge de l'API d'accès au système de fichiers. Les appels de dialogue de fichier 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 qui supportent cette API.
- Ajout d'un aperçu technique de la lecture vidéo et de la prise en charge de l'appareil photo à Qt Multimedia.
- Ajout d'une option de configuration pour WebAssembly SIMD : -feature-wasm-simd128
- Ajout d'une option de configuration pour les exceptions WebAssembly : -fonctionnalité-wasm-exceptions
- Publication de Qt Web Utils avec des fonctions utilitaires et des exemples d'utilisation de Qt sur le web.
- QTest Le script pour WebAssembly utilise maintenant emrun par défaut. Un script spécialisé pour WebAssembly pilote l'exécution des tests automatiques.
Plates-formes de bureau
Windows
- La variable d'environnement QT_WIN_DEBUG_CONSOLE peut être définie pour voir les messages stdout/stderr dans une fenêtre de console pour les applications GUI qui sont lancées à partir de la ligne de commande. Donnez-lui la valeur
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 suggèrent des facteurs d'échelle fractionnaires pour le client.
Plates-formes mobiles
Android
- Mise à jour de Gradle vers 8.0 et du plugin Android Gradle (AGP) vers 7.4.1 (nécessite JDK 11 ou supérieur).
- Mise à jour du NDK vers la version r25b (25.1.8937393).
- La liste des versions supportées est maintenant Android 8.0 (API 26) ou plus récent.
- Augmentation de la version minimale du sdk de construction de la plateforme à 33 (QT_ANDROID_API_VERSION).
- Prise en charge de plus d'opérations sur les URI de schéma de contenu avec les facilités Qt file/dir.
- Corrections et mises à jour de la documentation pour QStandardPaths sous Android Scoped Storage.
- Impression des exceptions Qt JNI à partir de Qt et non du 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 utilisant des chaînes d'outils basées sur Docker.
- Les niveaux de support pour le matériel cible ont été mis à jour et il y a maintenant plusieurs niveaux de support qui s'appliquent à des combinaisons spécifiques de matériel et de système d'exploitation.
Liste des modifications de l'API
Ces pages contiennent une vue d'ensemble des changements d'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.