Nouveautés de Qt 6.11
Nouveaux modules dans Qt 6.11
Qt 6.11 ajoute les modules suivants :
- Qt Canvas Painter: une solution de dessin 2D accélérée pour les cibles de rendu basées sur l'Qt Quick et l'QRhi.
- Qt OpenAPI - Une extension du générateur Open API en amont qui génère des clients HTTP Qt, généralement utilisés pour les API RESTful.
- Qt TaskTree: fournit une méthode déclarative pour composer et exécuter des flux de tâches asynchrones.
- Qt Labs StyleKit: une API de mise en forme dédiée qui simplifie la mise en forme d’ Qt Quick Controls grâce à un ensemble d’attributs de conception partagés.
Ces nouveaux modules sont en « Technology Preview » ; leurs API ne sont donc pas couvertes par les garanties de compatibilité de Qt. Mais vos retours sont les bienvenus pour nous aider à les améliorer ! Que ce soit via le Centre d’assistance Qt, le suivi de bogues Qt, le forum Qt ou les commentaires des articles de blog liés.
Module Qt Canvas Painter
Qt Canvas Painter est une solution de dessin 2D accélérée pour les cibles de rendu basées sur l’ Qt Quick et l’ QRhi. Consultez également la série d’articles de blog consacrée à Qt Canvas Painter pour un aperçu.
Module Qt OpenAPI
Qt OpenAPI étend un générateur d’API ouvertes pour créer des clients HTTP Qt, généralement utilisés pour les API RESTful. Outre la documentation, l’article de blog « REST Better with the Support of OpenAPI in Qt 6 » (Le REST amélioré grâce à la prise en charge d’OpenAPI dans Qt 6 ) offre un bon aperçu.
Module Qt TaskTree
Qt TaskTree offre un moyen déclaratif de composer et d’exécuter des flux de tâches asynchrones en C++. Consultez la série d’articles de blog « Introduction » pour une présentation générale.
Module Qt Labs StyleKit
Qt Labs StyleKit est une API dédiée à la mise en forme qui simplifie l’ Qt Quick Controls de styles grâce à un ensemble d’attributs de conception partagés.
Nouvelles fonctionnalités de Qt 6.11
Module ActiveQt
Aucun changement notable.
Qt Bluetooth Module
Aucun changement notable.
Qt CoAP Module
- QCoapClient::bindInterface permet de lier la communication à une interface réseau spécifique.
Qt Core Le module
- QDate est désormais faiblement incrémentable, c'est-à-dire qu'il implémente les opérateurs d'incrémentation (et de décrémentation) préfixés et postfixés, et peut être utilisé dans une
std::views::iotaC++20. - QJniObject Les API peuvent désormais être appelées avec un `
std::expected` (ou un type équivalent) comme type de retour ; dans ce cas, les exceptions Java ne sont pas gérées par le framework et sont renvoyées à l’appelant en tant que résultat inattendu. - QRangeModel::ItemAccess fournit un point de personnalisation pour accéder aux données de rôle d’un type d’élément à rôles multiples.
- QRangeModel peut désormais être utilisé avec des plages C++ qui ne fournissent pas d’implémentation constante de `
std::begin/end`, telles que les plages C++20std::views::filter. - Avec les plages utilisant la même sous-classe d’ QObject pour les éléments multi-rôles, le nouvel QRangeModel::autoConnectPolicy peut être défini sur « Full » ou « OnRead » afin de relier les signaux « changed » de toutes les propriétés exposées des éléments QObject à l’émission du signal dataChanged() correspondant.
- QRangeModelAdapter fournit une API de conteneur C++ classique pour la plage sur laquelle opère un QRangeModel, garantissant que les signaux QAbstractItemModel pertinents sont émis en cas de modification, sans que le code utilisateur ait à interagir avec QModelIndex. Cette nouvelle classe est en phase de prévisualisation technologique.
- Sous Windows, Qt génère désormais automatiquement un manifeste d’application pour les exécutables compilés avec CMake. Ce manifeste dérive la version de l’application de
PROJECT_VERSION, prend en charge la personnalisation de l’identifiant du projet et du niveau d’exécution via des variables CMake, déclare la compatibilité avec Windows 10 et Windows 11, et activelongPathAware.
Qt Concurrent Module
Aucun changement notable.
Qt D-Bus Module
Aucun changement notable.
Qt Graphs Module
- Ajout d'une nouvelle classe ` QCustomSeries ` permettant aux utilisateurs de créer leurs propres types de graphiques 2D, tels que les graphiques en chandeliers ou les diagrammes en boîte
- Ajout de la prise en charge des graphiques 3D à axes multiples via les propriétés ` rowAxis`, ` valueAxis` et ` columnAxis ` dans ` QBar3DSeries`, ainsi que les propriétés ` axisX`, ` axisY` et ` axisZ ` dans ` QScatter3DSeries ` et QSurface3DSeries
- Ajout des propriétés subSlicesCount, subSlicesSum, subSlicesRatio et sliceChildren dans QPieSlice pour permettre la création de sous-segments dans les graphiques circulaires et en anneau
- Ajout des propriétés visualMin et visualMax dans QDateTimeAxis et QValueAxis pour définir les plages visibles des axes
- Ajout des propriétés ` gradient ` et ` selectedGradient ` dans ` QAreaSeries ` pour permettre l'utilisation de dégradés dans les graphiques en aires
- Ajout de la propriété labelPosition dans QBarCategoryAxis pour permettre d’ajuster le placement des étiquettes dans les graphiques à barres
- Ajout de la propriété timeZone dans QDateTimeAxis pour permettre de définir son propre fuseau horaire pour l’axe
- Ajout des propriétés ` pan ` et ` zoom ` dans ` QDateTimeAxis ` pour permettre le panoramique et le zoom de la même manière que dans QValueAxis
- Ajout des propriétés « color » et « subColor » dans QAbstractAxis pour permettre de redéfinir les couleurs du thème pour les axes
- Ajout des propriétés joinStyle, lineStyle, strokeStyle, dashOffset et dashPattern dans QLineSeries pour permettre davantage de personnalisation dans les graphiques linéaires
- Ajout de la propriété ` optimized ` dans ` QSplineSeries ` pour permettre l'utilisation de l'interpolation Catmull-Rom à la place de la méthode par défaut, plus gourmande en ressources mais plus précise
- Ajout des propriétés ` customRowLabels ` et ` customColumnLabels ` dans QBar3DSeries pour permettre la redéfinition des libellés de lignes et de colonnes
- Ajout de la propriété ` rotationAbsolute ` dans ` QCustom3DItem ` pour corriger les problèmes liés aux rotations personnalisées des éléments
- Ajout de la propriété « rowsSanitized » dans « QSurface3DSeries » pour supprimer automatiquement les lignes contenant des données non valides
- Ajout de la propriété ` cutoffMargin ` dans ` GraphsItem3D ` et ` Q3DGraphsWidgetItem ` pour ajuster la sensibilité de la suppression des éléments situés près des marges du graphique
- Ajout de la prise en charge de plusieurs QBarSeries dans un même GraphsView.
- Ajout de la prise en charge des valeurs négatives dans les paramètres « QBarSeries ».
- Ajout de la prise en charge des valeurs non valides dans les « LineSeries », ce qui entraîne des lacunes visuelles.
Qt GRPC Module
- Ajout du nouveau mécanisme d’interception client à ` QtGrpc ` pour permettre l’interception et la modification des requêtes sortantes et des réponses entrantes.
- Qt 6.11 ajoute des opérateurs de comparaison (
operator==etoperator!=) pour QGrpcCallOptions et QGrpcChannelOptions, permettant des vérifications d’égalité directes entre les objets d’option. - QGrpcOperation La classe introduit un signal ` serverInitialMetadataReceived()` qui avertit les gestionnaires RPC dès que les métadonnées initiales du serveur sont reçues.
- QGrpcChannelOptions Les classes ` QGrpcCallOptions ` et ` ` fournissent désormais les méthodes ` filterServerMetadata()` et ` setFilterServerMetadata()` pour contrôler si les métadonnées liées au protocole sont incluses dans les réponses du serveur.
- L'espace de noms QtGrpc introduit l'énumération RpcType et la structure RpcDescriptor pour décrire les méthodes gRPC avec leur nom de service, leur nom de méthode et leur modèle de communication.
Qt GUI Module
- Les événements d’accessibilité du nouveau type `QAccessible::RoleChange` sont émis par le framework des fenêtres ancrées lorsque les widgets ancrés passent du mode ancré au mode flottant.
- Le nouveau rôle d’accessibilité « Switch » est utilisé par le type Switch dans Qt Quick Controls.
- Le nouvel attribut d’accessibilité « Orientation » est utilisé par les curseurs et les contrôles similaires pour signaler leur orientation aux clients d’accessibilité.
- QRawFont Une API a été ajoutée pour récupérer la valeur « glyphCount » () et pour rechercher la valeur « glyphName » () correspondant à un index de glyphe de la police.
- QTextCharFormat De nouvelles API permettent désormais de définir ` font features ` et ` variable axes`.
Qt Help Module
Aucune modification notable.
Qt HTTP Server Module
- Ajout de la prise en charge des clients HTTP/1.0.
- Qt 6.11 introduit des limites de taille de requête configurables pour QHttpServerConfiguration, permettant aux applications de se protéger contre les requêtes trop volumineuses. Les nouvelles méthodes incluent setMaximumUrlSize(), setMaximumTotalHeaderSize(), setMaximumHeaderFieldSize(), setMaximumHeaderFieldCount() et setMaximumBodySize(). Lorsque les limites sont dépassées, le serveur répond avec les codes d'erreur HTTP appropriés (414, 431 ou 413).
- Les gestionnaires de routes peuvent désormais renvoyer des réponses de type «
QFuture<void>» et répondre à l’aide d’un argument « QHttpServerResponder » dans un autre thread, ce qui permet de décharger le thread principal du serveur du traitement des requêtes gourmandes en ressources CPU. Pour les connexions HTTP/2, plusieurs requêtes peuvent être traitées simultanément, tandis que les connexions HTTP/1.x traitent les requêtes de manière séquentielle tout en bénéficiant du traitement en arrière-plan. Les E/S de socket restent toujours dans le thread QHttpServer. - isResponseCanceled() a été ajouté à QHttpServerResponder, ce qui permet aux gestionnaires de détecter quand un client s’est déconnecté et de se fermer prématurément pour éviter tout traitement inutile.
Qt Image Formats Module
Certains modules tiers intégrés ont été mis à jour ; voir Modifications des licences.
Qt Lottie Animation
- Ajout de la prise en charge des règles de remplissage de chemin.
- Ajout de la commande CMake ` qt_target_qml_from_lottie ` pour la conversion de Lottie vers QML lors de la compilation.
- Les backends «lottietoqml » et « VectorImage » ne sont plus en préversion technique.
- VectorImage: Ajout de la prise en charge de l'animation de formes le long de chemins.
- VectorImage: Ajout de la prise en charge des animations de morphing (interpolation entre deux formes).
- VectorImage: Ajout de la prise en charge des calques de cache.
Qt MQTT Module
Aucun changement notable.
Qt Multimedia Module
- Ajout de surcharges basées sur des callbacks pour les méthodes start de QAudioSource et QAudioSink afin de permettre le traitement audio en temps réel.
Qt Network Module
- QNetworkRequest peut désormais spécifier les paramètres TCP Keep Alive pour la requête en cours. De plus, les paramètres TCP Keep Alive par défaut ont été modifiés dans QNetworkAccessManager et les connexions inactives sont désormais interrompues après deux minutes d’inactivité.
Qt Network Authorization Module
Aucune modification notable.
Qt NFC Module
Aucun changement notable.
Qt OPC UA Module
- Le module Open62541 fourni a été mis à jour vers la version 1.4.13. Voir également les modifications apportées à la licence.
Qt OpenGL Module
Aucune modification notable.
Qt Positioning Module
- Qt pour les applicationsWebAssembly peut désormais utiliser l'API GeoLocation du navigateur comme backend.
Module Qt PrintSupport
- Améliorations de l'accessibilité des boîtes de dialogue d'impression : des paires d'étiquettes et un ordre de focus approprié ont été mis en place pour améliorer la prise en charge des lecteurs d'écran et la navigation au clavier.
Qt Protobuf Module
- La fonction ` qprotobufmessage_cast()` permet un downcasting sécurisé des pointeurs ` QProtobufMessage `. À l’instar de ` qobject_cast()` ou `
dynamic_cast()`, elle facilite la vérification et la conversion des types en exécution, en toute sécurité.
Qt Qml Module
- Ajout de la prise en charge des espaces de travail dans ` QML Language Server`.
- Ajout de la prise en charge de la fonction « Aller à la définition C++ » dans QML Language Server.
- Ajout de la prise en charge de la désactivation des avertissements relatifs aux propriétés de contexte via un fichier de configuration
.contextProperties.inipour qmllint. - Introduction des mots-clés `
override` et `virtual` qui, associés au mot-clé existant `final` et à la prise en charge par les outils, permettent d’éviter le masquage accidentel de propriétés et autorisent la redéfinition explicite de propriétés en QML. Voir Masquage de propriétés et sémantique de redéfinition pour plus de détails. - Attribution d’un nom au type de valeur « easingCurve » et transformation de l’espace de noms « Easing » en singleton.
- Ajout d’API à QQmlContext pour récupérer l’ list of child contexts, ainsi qu’à find an object by id.
- Ajout de l’option GroupAttributesTogether à qmlformat. Cette option implique l’option NormalizeOrder et réorganise les catégories QML sans trier les attributs (définitions de propriétés, liaisons de propriétés, méthodes, signaux et énumérations).
- Ajout de l’option `SingleLineEmptyObjects` à `qmlformat`. Cela empêche les objets vides de s’étendre sur une deuxième ligne.
Qt Quick Module
- Ajout de la commande CMake ` qt_target_qml_from_svg ` pour la conversion de SVG en QML lors de la compilation.
- Ajout d’API à ` Flickable ` pour ` position ` ou ` flick ` la vue à un enfant, ainsi qu’à ` flick to a position`.
Qt Quick Controls Module
- Ajout de la méthode ` DoubleSpinBox`, similaire à ` SpinBox ` mais prenant en charge les valeurs à virgule flottante.
- Ajout de defaultButton et defaultStandardButton à DialogButtonBox. Lorsqu’ils sont définis, le bouton correspondant est mis en surbrillance et reçoit l’événement activeFocus chaque fois que l’ DialogButtonBox obtient le focus.
Qt Quick Dialogs Module
Aucune modification notable.
Qt Quick Effects Module
- Qt 6.11 ajoute quatre nouvelles propriétés à RectangularShadow pour un contrôle indépendant du rayon des coins : topLeftRadius, topRightRadius, bottomLeftRadius et bottomRightRadius. Chaque propriété utilise par défaut la propriété existante radius si elle n’est pas définie, ou crée un coin vif lorsqu’elle est définie sur zéro, ce qui permet des formes d’ombre plus flexibles avec des rayons de coin différents pour chaque coin.
Qt Quick Layouts Module
Aucun changement notable.
Qt Quick Particles Module
Aucun changement notable.
Qt Quick Timeline Module
Aucun changement notable.
Qt Quick Test Module
Aucun changement notable.
Qt Quick Module Widgets
Aucun changement notable.
Qt Quick Module 3D
- Ajout d'une API QML pour les passes de rendu définies par l'utilisateur, permettant de créer des pipelines de rendu personnalisés directement en QML sans connaissance du C++
- Ajout de la propriété ` ssrEnabled ` dans ` ExtendedSceneEnvironment ` pour activer les reflets dans l'espace écran (SSR)
- Ajout de l'effet d'éclairage global dans l'espace écran (SSGI) à ExtendedSceneEnvironment, offrant une occlusion ambiante et un éclairage indirect en temps réel
- Ajout de la génération de vecteurs de mouvement par objet pour les effets d’anti-aliasing temporel (Temporal AA) et de flou de mouvement
- Ajout de la prise en charge des calques pour permettre le regroupement des nœuds et le contrôle des calques rendus par la caméra
- Ajout d’une méthode de rendu par transparence indépendante de l’ordre de la liste chaînée (OIT)
- Ajout de la prise en charge d’
NORMAL_ROUGHNESS_TEXTUREdans les effets de post-traitement et les matériaux personnalisés - Ajout d’un échantillonnage de bruit bleu aux ombres douces PCF pour une meilleure qualité avec des motifs de bruit moins visibles
- Ajout d’une gestion correcte de l’alpha pré-multiplié pour le contenu « Qt Quick » dans les textures
- Ajout de l’
VIEW_MATRIXet de l’exposition «PROJECTION_MATRIX» aux effets de post-traitement - Ajout de la méthode ` pickInRect()` dans ` View3D ` pour la sélection d’objets à partir de rectangles
- Ajout de la méthode closestPointPick() dans View3D pour trouver le point d'une surface le plus proche d'un point donné
- Ajout d'une surcharge de la méthode rayPick() acceptant un paramètre de modèle spécifique
- Ajout d’une forme de scène pour les émetteurs de particules qui calcule dynamiquement les formes en fonction de la géométrie de la scène
- Ajout de l’API ` QQuick3DTextureProviderExtension ` pour simplifier la création de fournisseurs de textures personnalisés
- Ajout de la fonction ` scheduleRenderResults()` dans ` QSSGFrameData ` pour demander les résultats d’un passage de rendu spécifique
- Mise à jour d’Assimp vers la version 6.0.2
Qt Quick Module 3D XR
- Ajout de la prise en charge d’OpenGL sur Linux pour ordinateurs de bureau (plateformes Monado, Xlib et Wayland)
- Extension de la fonction ` processTouch()` pour transmettre les événements tactiles à n’importe quel ` Model` sélectionnable, et non plus uniquement à XrItem
- Amélioration de la fonction ` touchpointState()` pour qu’elle renvoie les informations de position de surface et de vecteur normal pour les interactions tactiles en 3D
- Ajout de la prise en charge des fenêtres contextuelles et des menus dans ` XrItem ` via un `QQuickOverlay` dédié
- Mise à jour d’OpenXR vers la version 1.1.49
Qt Quick 3D Physics Module
Aucune modification notable.
Qt Quick Module VectorImage
- Ajout de la prise en charge des masques SVG.
- Ajout de la prise en charge des filtres de post-traitement SVG pour s'aligner sur la prise en charge dans Qt SVG: feGaussianBlur, feColorMatrix, feOffset, feFlood, feBlend, feComposite et feMerge.
- Ajout de la prise en charge de l'animation de formes le long de tracés.
- Ajout de la prise en charge de la balise SVG <symbol>.
Qt Serial Port Module
Aucun changement notable.
Qt Serial Bus Module
Aucune modification notable.
Module Qt SQL
Aucune modification notable.
Qt SVG Module
- Ajout de la prise en charge des animations de trajectoire CSS via
offset-pathetoffset-distance. Notez queoffset-pathne prend en charge que la fonction path pour définir une trajectoire. - Ajout de la prise en charge de la fonction de synchronisation d'animation CSS sur une animation dans son ensemble. Actuellement, seuls les mots-clés prédéfinis sont pris en charge (
linear,step-start,ease, etc.).
Qt Test Module
- Ajout de la fonction ` QTest::currentGlobalDataTag()` pour récupérer le nom des données de test globales actuelles.
- Ajout de QTest::defaultTryTimeout pour permettre la configuration du délai d’expiration par défaut utilisé par les fonctions QTRY_*.
- QCOMPARE affiche désormais le signe pour les zéros négatifs et les valeurs NaN, et affiche les charges utiles NaN.
- QTEST_THROW_ON_FAIL et ` QTEST_THROW_ON_SKIP ` fonctionnent désormais lorsque `QCOMPARE/QSKIP` est appelé depuis l’intérieur de ` QtConcurrent`.
- QTest::failOnWarning() échoue désormais pour tout type de message >= « warning », y compris les messages critiques.
- Sous macOS, la mise en veille de l’écran et App Nap sont désormais désactivés sans condition pendant toute la durée de l’exécution du test.
- Mise à jour de la prise en charge de Callgrind vers Valgrind v3.25.1, avec ajout de la prise en charge de Linux RISCV 64 bits.
Module Qt VirtualKeyboard
- Qt 6.11 introduit la propriété ` arrowKeyNavigationEnabled ` dans ` VirtualKeyboardSettings`, permettant aux développeurs de contrôler si les touches fléchées (Gauche, Droite, Haut, Bas) et la touche Entrée peuvent être utilisées pour naviguer entre les touches du clavier lorsque le panneau de saisie est visible. La valeur par défaut de cette propriété dépend du drapeau de configuration à la compilation `
QT_VIRTUALKEYBOARD_ARROW_KEY_NAVIGATION`. - Ajout de la propriété ` keyboardDesignMaximumHeight ` au type ` KeyboardStyle `. Utilisez-la pour empêcher le clavier de recouvrir la majeure partie de l’écran.
Qt WebEngine Le module
- Qt WebEngine est désormais basé sur Chromium 140.
- Chromium a ajouté de nouveaux composants Rust destinés à remplacer leurs équivalents en C++. Qt WebEngine peut désormais être compilé de manière facultative à l’aide de ces composants Rust. Cela nécessite l’installation d’une chaîne d’outils Rust et une configuration à l’aide de
-feature-webengine-rust-build. Par défaut, la compilation s’effectue avec les anciens composants C++. - Ajout d’une règle de OnlyPersistentCookies pour empêcher l’enregistrement des cookies de session sur le disque.
- Ajout d’un paramètre TrimAccessibilityIdentifiers pour forcer l’utilisation des attributs HTML « id » comme identifiants d’automatisation à des fins d’accessibilité.
- Ajout de la prise en charge de l’attribut global HTML `
inputmode`. - Amélioration de la gestion par l’API
fetch()des redirections vers des ressources inter-origines. - Suppression du code de l’API du plugin Pepper.
- Activation de la page de débogage «
chrome://usb-internals».
Qt WebView Module
- Ajout de liaisons C++ pour WebView, vous permettant d’utiliser le module dans des applications basées sur l’ Qt Widgets. Les nouvelles API C++ sont publiées en version « Technology Preview » et sont susceptibles d’être modifiées à l’avenir.
Qt Widgets Module
- QWizard Le module dispose désormais d’une nouvelle option « StretchBanner » permettant d’étirer la bannière sur toute la largeur de l’assistant.
- QAbstractItemView dispose d’une nouvelle propriété keyboardSearchFlags qui permet de régler la manière dont l’implémentation par défaut de keyboardSearch() compare la chaîne fournie aux données du modèle.
- QColumnView dispose d’une nouvelle propriété d’ previewColumnVisible qui spécifie si la colonne d’aperçu est visible.
- La nouvelle classe ` QStyleOptionMenuItemV2 ` ajoute un indicateur précisant si le bouton de la souris est enfoncé sur l’élément rendu par le style.
- QTabBar émet désormais un événement « tabCloseRequested » lorsqu’un onglet est cliqué avec le bouton central de la souris si la propriété « tabsClosable » est définie sur « true ».
Qt XML Module
Aucun changement notable.
Outils
Générateur de documentation QDoc
- Ajout d’une prise en charge complète des types singleton QML, notamment une nouvelle commande «
\qmlsingletontype», la détection automatique de la macro «QML_SINGLETON» et la reconnaissance de «pragma singleton» dans les fichiers QML. - QDoc prend désormais entièrement en charge les alias de modules QML (syntaxe
import ... as ...), y compris la liaison, la mise en évidence syntaxique des identifiants qualifiés et le balisage correct de la notation des propriétés telles queanchors.fillet des propriétés associées telles queComponent.onCompleted. - Vous pouvez utiliser les nouvelles commandes
\toc/\endtocet\tocentrypour spécifier des structures hiérarchiques de table des matières dans les fichiers source de la documentation. QDoc génère des fichiers<project>_toc.xmlpour les barres latérales de navigation. - La \overload commande accepte désormais un argument facultatif. Utilisez la syntaxe
\overload primarypour désigner la fonction principale dans un ensemble de surcharges. - QDoc génère désormais des exemples de connexion contextuels pour les signaux et les slots surchargés.
- La variable de configuration `
includeprivate` permet de documenter les membres privés en C++. Les fonctions virtuelles pures sont désormais documentées sans condition. - Concepts C++20: QDoc extrait et affiche désormais les clauses « requires » de C++20 pour les modèles de fonctions et de classes. Les positions de contraintes en tête et en fin de modèle sont toutes deux prises en charge.
- La \code commande accepte désormais un argument facultatif permettant de spécifier le langage de programmation du bloc de code. Utilisez « text » pour désactiver la coloration syntaxique.
- L’argument `
\meta keywords` ajoute des mots-clés personnalisés sous forme d’éléments HTML `<meta>` à des fins d’optimisation pour les moteurs de recherche et de post-traitement. - La liaison explicite aux propriétés associées QML est désormais prise en charge à l’aide du critère de liaison « attached », ce qui permet de lever les ambiguïtés en cas de conflit entre les noms de propriétés standard et ceux de propriétés associées.
- Les déclarations de modèles comportant plus de deux paramètres sont désormais affichées sur plusieurs lignes pour une meilleure lisibilité. La sortie HTML utilise la classe CSS «
template-block» pour une mise en forme personnalisée. - QDoc signale désormais les propriétés C++ non documentées déclarées avec `
Q_PROPERTY`, garantissant ainsi une couverture documentaire cohérente pour tous les éléments de l’API. - QDoc signale désormais les liens vers soi-même dans les commandes `
\sa` lorsqu’un document renvoie vers lui-même. - La variable de configuration `
logwarnings` permet à QDoc d’écrire tous les avertissements dans un fichier `<project>-qdoc-warnings.log`. La nouvelle sous-option `logwarnings.disablecliargs` omet les arguments de l’interface en ligne de commande (CLI) de l’en-tête du journal afin de garantir la portabilité des journaux. - Les avertissements de QDoc incluent désormais le préfixe du nom du projet pour les constructions multi-modules.
- Améliorations de la configuration:
codelanguages: Spécifie des langages de programmation supplémentaires acceptés dans les blocs « \code », ce qui permet à la documentation d’inclure du code dans des langages ne disposant pas de marqueurs de mise en évidence de syntaxe intégrés.imagesoutputdir: Sous-répertoire de sortie personnalisé pour les images afin de résoudre les conflits de noms de fichiers dans les builds multi-modules.internalfilepatterns: Marque automatiquement les classes comme « internes » en fonction de modèles de noms de fichiers ou de chemins d’accès, tels que «*_p.h».projectroot: Définit le répertoire racine permettant de convertir les chemins absolus en chemins relatifs dans les journaux d’avertissements, améliorant ainsi la portabilité entre les environnements de compilation. Également disponible sous la forme de la variable d’environnement `QDOC_PROJECT_ROOT`.
- Les commandes de mise en forme fonctionnent désormais dans les arguments de `
\title`, `\generatelist` fonctionne correctement dans les structures de table des matières des projets de Qt Help, et les préfixes d’énumérateurs personnalisés sont pris en charge dans `\qmlenum`. - La structure HTML de la documentation des membres QML et C++ est unifiée. Cette modification introduit de nouvelles classes CSS (
qml-member,qml-property,qml-method,qml-property-group) dans la sortie HTML de QDoc. - Analyse du code: amélioration de la résolution des énumérations avec portée, gestion de l’héritage QML avec détection des cycles, et préservation correcte des types déclarés et des informations sur les variables dans les fichiers d’index.
- Ajout de la compatibilité avec LLVM/Clang 21, la version minimale prise en charge étant désormais 17.0.6.
- La commande `
\tableofcontents` est officiellement obsolète.
Qt Linguist
- Ajout d’étiquettes permettant de classer les traductions basées sur des identifiants en groupes pertinents sans affecter le comportement d’exécution. Consultez la documentation sur les traductions basées sur des identifiants de texte et l’article de blog pour plus de détails.
- Ajout de nouveaux exemples d’internationalisation (i18n) à la documentation.
- Ajout de la traduction par IA pour ` Qt Linguist ` afin de permettre des traductions automatiques à l’aide de modèles de langage (LLM). Consultez la documentation sur la traduction par IA et l’article de blog pour plus de détails.
- Ajout de l'exécutable ltext2id pour la migration des projets de la traduction basée sur le texte vers la traduction basée sur les identifiants. Consultez la section « Utilisation de ltext2id » pour plus de détails.
- Ajout de l'exécutable lcheck pour effectuer une validation par lots des fichiers TS. Consultez la section « Utilisation de lcheck » pour plus de détails.
- Ajout de la prise en charge des attributs C++ dans l'analyseur lupdate
- L'utilisation des métachaines //= dans l'analyseur lupdate est désormais obsolète.
- L’option «
lupdate -pro» permettant de traiter directement les fichiers .pro est désormais obsolète. Utilisez plutôt «lupdate-pro». - Suppression de l'exécutable lprodump. Ses fonctionnalités sont désormais disponibles via l'option
lupdate-pro -dump-json.
Modifications de la plate-forme
Modifications du système de compilation
- Ajout d’une option de configuration -generate-vcpkg-manifest. Celle-ci génère un fichier vcpkg.json dans le répertoire de compilation. Pour générer uniquement le manifeste sans configurer Qt, exécutez configure avec l’option -generate-vcpkg-manifest -dry-run.
- Lors de la configuration avec l’option -vcpkg, un fichier manifeste vcpkg est généré dans le répertoire de compilation ; définissez VCPKG_MANIFEST_DIR sur ce répertoire pour utiliser ce fichier manifeste. Vous pouvez désactiver la génération du manifeste avec l’option -no-generate-vcpkg-manifest. Vous pouvez désactiver la définition du répertoire du manifeste en passant l'option `
-- -UVCPKG_MANIFEST_DIR` à la commande `configure`. - Ajout de la prise en charge de la génération de documents SBOM CycloneDX en plus du format SPDX existant. Pour activer la génération CycloneDX, configurez Qt avec l'option `
-sbom -sbom-cyclonedx-v1_6 -sbom-cyclonedx-v1_6-required`.
Plateformes de bureau
Windows
- Ajout de la prise en charge et de la détection de Windows 11 25H2 (build 10.0.26200) via l’option ` QOperatingSystemVersion`.
- Diverses améliorations ont été apportées à l’accessibilité des fenêtres de premier niveau et à la gestion du focus.
- Amélioration de la gestion de la mise à jour du taux de rafraîchissement.
- Ajout d’une prise en charge expérimentale d’ARM64EC lors de l’utilisation de Visual Studio 2026. Pour utiliser cette configuration, ajoutez
/arm64ECàCFLAGSainsi que/arm64ECet/d2arm64ECMarkAllFuncsPatchableà vos variables d’environnementCXXFLAGSsur votre machine Windows sur ARM, puis configurez et compilez Qt comme vous le faites habituellement.
Linux
- Le plugin Wayland bénéficie désormais de la répétition des touches côté serveur, de la préférence pour les décorations côté serveur, d'une prise en charge expérimentale de
xx-session-management-v1, ainsi que de nombreuses corrections de stabilité (fenêtres contextuelles, défilement, surfaces hors écran, presse-papiers). - L’ancien moteur de rendu natif X11 (XRender) pour XCB a été supprimé. L’utilisation de ce moteur nécessitait de l’activer lors de la compilation à l’aide d’une option CMake (
-xcb-native-painting) et de l’activer lors de l’exécution à l’aide de la variable d’environnementQT_XCB_NATIVE_PAINTING. - L'accessibilité a été améliorée grâce à l'ajout de la prise en charge de l'interface AT-SPI Collection, qui offre un mécanisme plus efficace pour récupérer des objets accessibles au sein de la hiérarchie d'accessibilité d'une application. Cette interface permet également la prise en charge du mode navigation dans le lecteur d'écran Orca.
- XKB : le mappage des touches a été étendu pour Qt::Key_Call / Qt::Key_Hangup.
macOS
- Les applications en bac à sable peuvent désormais accéder aux fichiers situés en dehors du bac à sable de l’application (ce que l’on appelle les « ressources de sécurité ») en lecture et en écriture. Les fichiers ou dossiers sélectionnés par l’utilisateur via des boîtes de dialogue de fichiers ou un mécanisme natif similaire sont gérés de manière automatique et transparente, y compris l’accès persistant après le redémarrage de l’application et de l’appareil.
- Ajout de ` QNativeInterface::QCocoaScreen ` pour accéder au `NSScreen` sous-jacent.
- La conversion entre CGImageRef et QImage prend désormais en charge un plus large éventail de formats d’image, notamment les formats « QImage::Format_RGB30 » et à virgule flottante, essentiels pour le contenu HDR.
- Le moteur d’icônes d’Apple respecte désormais le sens de mise en page du « painter », produisant des icônes spécifiques à l’écriture de droite (RTL) si elles sont disponibles dans le jeu d’icônes SF Symbols.
- Les chemins d’accès aux fichiers sélectionnés via les panneaux natifs d’ouverture/d’enregistrement sont désormais normalisés selon la norme NFC, ce qui garantit des comparaisons cohérentes des noms de fichiers, que le système de fichiers stocke ou non les noms au format NFD.
Plateformes mobiles
Android
Qt pour Android
- Qt Jenny prend désormais en charge l’implémentation d’interfaces Java et l’extension de classes Java en C++.
- Prise en charge de la fonctionnalité « Feature Delivery » du Play Store.
- Prise en charge d’Android 16.
- Mise à jour vers Gradle 9.3.1 et le plugin Gradle pour Android 9.0.0.
- Mise à jour vers le JDK 21 LTS et extension de la compatibilité au JDK 17 LTS.
Qt Quick pour Android
- Ajout de la méthode QtQuickView.invokeMethod() pour appeler des fonctions QML depuis Java/Kotlin.
- Prise en charge de l'enregistrement des signaux avant le chargement de la vue QML.
iOS
- Ajout de la prise en charge des icônes de fichiers dans le thème de la plateforme.
- Ajout de la prise en charge de ` QFileOpenEvent ` pour les requêtes externes visant à ouvrir des fichiers.
- Les applications en mode sandbox peuvent désormais accéder aux fichiers situés en dehors de la zone de sécurité de l'application (ressources dites « à portée de sécurité ») en lecture et en écriture. Les fichiers ou dossiers sélectionnés par l'utilisateur via des boîtes de dialogue de fichiers ou un mécanisme natif similaire sont gérés automatiquement et de manière transparente, y compris l'accès persistant après le redémarrage de l'application et de l'appareil.
- Ajout de la prise en charge des boîtes de dialogue d’enregistrement natives.
Plateformes embarquées
Linux
- EGLFS/KMS prend désormais en charge le branchement à chaud et le rechargement à chaud des écrans en cours d’exécution (contrôlé par la variable d’environnement `
QT_QPA_EGLFS_HOTPLUG_ENABLED`). - Un nouveau backend QNetworkInformation basé sur ConnMan a été ajouté.
- DirectFB : le mappage Qt::Key_Call a été ajouté.
Boot to Qt
- Nouvelles plateformes de niveau 2:
- NXP i.MX 8M Plus LDDPR4 EVK
- Toradex i.MX 95 Verdin
- Kit Qualcomm RB3 Gen2 Vision
Plateformes Web
WebAssembly
- Qt Positioning dispose désormais d’un backend pour l’API GeoLocation.
- Utilisez le nouvel outil
wasmdeployqtpour déployer et distribuer des applications Qt pour WebAssembly liées dynamiquement. Cet outil remplace les anciens scripts Pythonpreload_qt_plugins.pyetpreload_qml_imports.py.
Liste des modifications apportées aux API
Ces pages présentent un aperçu des modifications apportées aux API dans Qt 6.11 :
Problèmes connus
Pour plus d'informations sur les problèmes connus dans Qt 6.11, consultez le wiki Qt.
© 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.