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 peinture 2D accélérée pour Qt Quick et QRhi-based render targets.
- QtOpenAPI - Une extension du générateur Open API en amont qui génère des clients Qt HTTP, généralement utilisés pour les API RESTful.
- Qt TaskTree - Fournit un moyen déclaratif de composer et d'exécuter des flux de tâches asynchrones.
- Qt Labs StyleKit - Une API de stylisme dédiée qui rationalise le stylisme des contrôles Qt Quick grâce à un ensemble d'attributs de conception partagés.
Les nouveaux modules sont en Technology Preview, ce qui exclut leur API des promesses de compatibilité de Qt. Mais nous sommes très heureux de recevoir des commentaires pour les améliorer ! Que ce soit via le Qt Support Center, le Qt Bug Tracker, le Qt Forum, ou les commentaires des articles de blog liés.
Module Qt Canvas Painter
Qt Canvas Painter est une solution de peinture 2D accélérée pour les cibles de rendu basées sur Qt Quick et QRhi. Voir aussi la série de blogs Qt Canvas Painter pour une vue d'ensemble.
Module Qt OpenAPI
Qt OpenAPI étend un générateur d'API ouverte pour générer des clients HTTP Qt, typiquement utilisés pour les API RESTful.
Module Qt TaskTree
Qt TaskTree fournit un moyen déclaratif de composer et d'exécuter des flux de tâches asynchrones en C++. Voir la série d'articles de blog Introduction pour une vue d'ensemble.
Module Qt Labs StyleKit
Qt Labs StyleKit est une API de stylisme dédiée qui rationalise le stylisme des contrôles Qt Quick 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 met en œuvre des opérateurs d'incrémentation (et de décrémentation) pré et post-fixe, et peut être utilisé dans un C++20
std::views::iota. - QJniObject Les API peuvent désormais être appelées avec
std::expected(ou un type équivalent) comme type de retour, auquel cas les exceptions Java ne sont pas consommées par le cadre et sont renvoyées à l'appelant en tant que résultat inattendu. - QRangeModel::ItemAccess fournit un point de personnalisation pour l'accès aux données de rôle d'un type d'élément multirôle.
- QRangeModel peut désormais être utilisé avec des intervalles C++ qui ne fournissent pas d'implémentation constante
std::begin/end, comme C++20std::views::filter. - Avec les gammes qui utilisent la même sous-classe QObject pour les éléments multirôles, le nouveau QRangeModel::autoConnectPolicy peut être défini sur Full ou OnRead pour connecter les signaux de changement de toutes les propriétés exposées des éléments QObject à l'émission de signaux dataChanged() correspondante.
- QRangeModelAdapter La nouvelle classe QRangeModel fournit une API de conteneur C++ typique à la plage sur laquelle opère , garantissant que les signaux QAbstractItemModel pertinents sont émis en cas de changement, sans que le code utilisateur n'ait à travailler avec QModelIndex. Cette nouvelle classe fait l'objet d'un aperçu technologique.
- Sous Windows, Qt génère désormais automatiquement un manifeste d'application pour les exécutables construits avec CMake. Le 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 les variables CMake, déclare la compatibilité avec Windows 10 et Windows 11, et activelongPathAware.
Qt Concurrent Module
Aucun changement notable.
Qt D-Bus Module
Pas de changement notable.
Qt Graphs Module
- Ajout d'une nouvelle classe QCustomSeries pour permettre aux utilisateurs de créer leurs propres types de graphiques en 2D, tels que les graphiques en chandelier ou en boîte.
- Ajout d'un support multi-axes aux graphiques 3D sous la forme des propriétés rowAxis, valueAxis, et columnAxis dans QBar3DSeries, et 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-tranches dans les graphiques de type "tarte" et "donut".
- Ajout des propriétés visualMin et visualMax dans QDateTimeAxis et QValueAxis pour contenir les plages d'axes visibles
- Ajout des propriétés gradient et selectedGradient dans QAreaSeries pour permettre l'utilisation de gradients dans les graphiques à aires.
- Ajout de la propriété labelPosition dans QBarCategoryAxis pour permettre d'ajuster l'emplacement de l'étiquette dans les graphiques à barres
- Ajout de la propriété timeZone dans QDateTimeAxis pour permettre de définir votre propre fuseau horaire pour l'axe
- Ajout des propriétés pan et zoom dans QDateTimeAxis pour permettre de faire des panoramiques et des zooms de la même manière que dans les graphiques à barres. QValueAxis
- Ajout des propriétés color et subColor dans QAbstractAxis pour permettre de remplacer les couleurs du thème pour les axes.
- Ajout des propriétés joinStyle, lineStyle, strokeStyle, dashOffset, et dashPattern dans QLineSeries pour permettre une stylisation plus poussée des graphiques linéaires.
- Ajout de la propriété optimized dans QSplineSeries pour permettre l'utilisation de l'interpolation Catmull-Rom au lieu de la méthode par défaut, plus précise et plus gourmande en performances.
- Ajout des propriétés customRowLabels et customColumnLabels dans QBar3DSeries pour permettre de remplacer les étiquettes des lignes et des colonnes.
- Ajout de la propriété rotationAbsolute dans QCustom3DItem pour résoudre les problèmes de rotation des éléments personnalisés.
- Ajout de la propriété rowsSanitized dans QSurface3DSeries pour supprimer automatiquement les lignes dont les données ne sont pas valides.
- Ajout de cutoffMargin dans GraphsItem3D et Q3DGraphsWidgetItem pour ajuster la sensibilité de l'élimination des éléments situés près des marges du graphique.
- Ajout de la prise en charge de plusieurs QBarSeries dans un GraphsView.
- Ajout de la prise en charge des valeurs négatives dans QBarSeries.
- Ajout de la prise en charge des valeurs non valides dans LineSeries, ce qui entraîne des lacunes visuelles.
Qt GRPC Module
- Ajout du nouveau mécanisme d'interception du client à QtGrpc pour permettre l'interception et la modification des demandes 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 directes d'égalité entre les objets d'option. - QGrpcOperation La classe introduit un signal serverInitialMetadataReceived() qui notifie les gestionnaires RPC dès que les métadonnées initiales du serveur sont reçues.
- QGrpcChannelOptions La classe fournit maintenant 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 cadre de la fenêtre d'ancrage lorsque les widgets d'ancrage passent de l'état ancré à l'état flottant.
- Le nouveau rôle d'accessibilité Switch est utilisé par le type Switch dans les contrôles Qt Quick.
- Le nouvel attribut accessible 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 obtenir glyphCount() et pour rechercher glyphName() pour un index de glyphes de la police.
- QTextCharFormat a obtenu de nouvelles API pour définir font features et variable axes.
Qt Help Module
Pas de changement notable.
Module Qt HttpServer
- Ajout du support pour les 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 surdimensionnées. Les nouvelles méthodes comprennent 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
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 processeur. 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 d'un 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 la déconnexion d'un client et d'en sortir plus tôt afin d'éviter tout traitement inutile.
Qt Image Formats Module
Certains modules tiers ont été mis à jour, voir Changements de licence.
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 à QML au moment de la construction.
- lottietoqml et VectorImage backend ne sont plus tech preview.
- VectorImage: Ajout de la prise en charge de l'animation des formes le long des chemins.
- VectorImage: Ajout de la prise en charge des animations de morphing (interpolation entre deux formes).
- VectorImage: Ajout de la prise en charge des couches mattes.
Qt MQTT Module
Pas de changement notable.
Qt Multimedia Module
- Ajout de surcharges basées sur des callbacks pour les méthodes de démarrage de QAudioSource et QAudioSink afin de permettre un traitement audio en temps réel.
Qt Network Module
- QNetworkRequest peut maintenant 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 maintenant les connexions inactives sont terminées après deux minutes d'inactivité.
Qt Network Module d'autorisation
Aucun changement notable.
Qt NFC Module d'autorisation
Aucun changement notable.
Qt OPC UA Module d'autorisation
- Le module Open62541 a été mis à jour vers la version 1.4.13. Voir aussi les changements de licence.
Qt OpenGL Module
Aucun changement notable.
Qt Positioning Module
- Les applicationsQt for WebAssembly peuvent maintenant utiliser l'API GeoLocation du navigateur comme backend.
Module Qt PrintSupport
- Amélioration de l'accessibilité des boîtes de dialogue d'impression : Les copains d'étiquettes et l'ordre de mise au point ont été établis pour améliorer le support des lecteurs d'écran et la navigation au clavier.
Qt Protobuf Module Qt
- La fonction qprotobufmessage_cast() permet de faire descendre en toute sécurité les pointeurs QProtobufMessage. Similaire à qobject_cast() ou
dynamic_cast(), elle permet une vérification de type et une conversion faciles et sûres au moment de l'exécution.
Qt Qml Module
- Ajout de la prise en charge de l'espace de travail dans QML Language Server.
- Ajout de la prise en charge des définitions C++ dans QML Language Server.
- Ajout de la prise en charge de la désactivation des avertissements relatifs aux propriétés du contexte via un fichier de configuration
.contextProperties.inipour qmllint. - Introduction des mots-clés
overrideetvirtualqui, avec le mot-cléfinalexistant et le support de l'outillage, aident à prévenir l'ombrage accidentel des propriétés et permettent la surcharge explicite des propriétés en QML. Voir Property Shadowing et Override Semantics pour plus de détails. - Nous avons donné un nom au type de valeur easingCurve et transformé l'espace de noms Easing en un singleton.
- Ajout d'API à QQmlContext pour obtenir list of child contexts et à find an object by id.
- Ajout de l'option GroupAttributesTogether à qmlformat. Cela implique l'option NormalizeOrder et réordonne les catégories QML sans trier les attributs (définitions de propriétés, liaisons de propriétés, méthodes, signaux et enums).
- Ajout de l'option SingleLineEmptyObjects à qmlformat. Cette option 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 à QML au moment de la construction.
- Ajout d'API à Flickable pour position ou flick la vue vers un enfant et à flick to a position.
Qt Quick Module de contrôle
- Ajout de DoubleSpinBox, qui est similaire à SpinBox mais prend en charge les valeurs à virgule flottante.
- Ajout de defaultButton et defaultStandardButton à DialogButtonBox. Lorsqu'il est activé, le bouton correspondant sera mis en évidence et recevra activeFocus chaque fois que DialogButtonBox sera mis en évidence.
Qt Quick Module Dialogues
Aucun changement notable.
Qt Quick Module des effets
- Qt 6.11 ajoute quatre nouvelles propriétés à RectangularShadow pour un contrôle indépendant du rayon d'angle : topLeftRadius, topRightRadius, bottomLeftRadius, et bottomRightRadius. Chaque propriété revient à la propriété existante radius si elle n'est pas définie, ou crée un angle aigu si elle est définie à zéro, ce qui permet d'obtenir des formes d'ombre plus flexibles avec des rayons d'angle différents pour chaque coin.
Qt Quick Module de mise en page
Aucun changement notable.
Qt Quick Module des particules
Pas de changement notable.
Qt Quick Module de la ligne de temps
Aucun changement notable.
Qt Quick Module de test
Pas de changements notables.
Qt Quick Module Widgets
Pas de changements notables.
Qt Quick Module 3D
- Ajout d'une API QML pour les passes de rendu définies par l'utilisateur, permettant des pipelines de rendu personnalisés directement dans QML sans connaissances en C++.
- Ajout de la propriété ssrEnabled dans ExtendedSceneEnvironment pour activer les réflexions dans l'espace de l'écran (SSR).
- Ajout d'un effet d'illumination globale de l'espace-écran (SSGI) à ExtendedSceneEnvironment, permettant l'occlusion ambiante et l'éclairage indirect en temps réel.
- Ajout de la génération de vecteurs de mouvement par objet pour les effets Temporal AA et motion blur.
- Ajout de la prise en charge de la superposition pour permettre de grouper les nœuds et de contrôler les couches rendues par la caméra
- Ajout d'une méthode de rendu de la transparence indépendante de l'ordre (OIT) à partir d'une liste chaînée
- Ajout de la prise en charge de
NORMAL_ROUGHNESS_TEXTUREdans les effets de post-traitement et les matériaux personnalisés - Ajout de l'échantillonnage du 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'exposition
VIEW_MATRIXetPROJECTION_MATRIXaux effets de post-traitement - Ajout de la méthode pickInRect() dans View3D pour la sélection d'objets basée sur un rectangle
- Ajout de la méthode closestPointPick() dans View3D pour trouver le point d'une surface le plus proche d'un point donné.
- Ajout de la surcharge rayPick() qui accepte 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 la création simplifiée de fournisseurs de textures personnalisés
- Ajout de la fonction scheduleRenderResults() dans QSSGFrameData pour demander des résultats spécifiques de la passe de rendu
- Mise à jour d'Assimp vers la version 6.0.2
Qt Quick Module 3D XR
- Ajout du support OpenGL desktop Linux (plateformes Monado, Xlib, Wayland)
- Extension de processTouch() pour délivrer des événements tactiles à n'importe quel objet à piocher Model, et pas seulement à des objets à piocher. XrItem
- Amélioration de touchpointState() pour renvoyer la position de la surface et les informations sur le vecteur normal pour les interactions tactiles 3D.
- Ajout de la prise en charge des fenêtres contextuelles et des menus dans XrItem par le biais d'un QQuickOverlay dédié
- Mise à jour d'OpenXR vers la version 1.1.49
Qt Quick Module physique 3D
Pas de changements notables.
Qt Quick Module VectorImage
- Ajout du support pour les masques SVG.
- Ajout de la prise en charge des filtres de post-traitement SVG pour correspondre à la prise en charge des filtres suivants Qt SVGLes filtres suivants ont été ajoutés : feGaussianBlur, feColorMatrix, feOffset, feFlood, feBlend, feComposite et feMerge.
- Ajout de la prise en charge de l'animation des formes le long des chemins.
- Ajout de la prise en charge de la balise SVG <symbol>.
Qt Serial Port Module
Aucun changement notable.
Qt Serial Bus Module
Pas de changements notables.
Module Qt Sql
Pas de changements notables.
Qt SVG Module
- Ajout de la prise en charge de l'animation des chemins de mouvement CSS par l'intermédiaire de
offset-pathetoffset-distance. Notez queoffset-pathne prend en charge que la fonction path pour la définition d'un chemin. - Ajout de la prise en charge de la fonction de synchronisation des animations CSS sur l'ensemble d'une animation. 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 de configurer le délai d'attente par défaut utilisé par les fonctions QTRY_*.
- QCOMPARE affiche désormais le signe des zéros négatifs et des valeurs NaN, ainsi que les données utiles NaN.
- QTEST_THROW_ON_FAIL et QTEST_THROW_ON_SKIP fonctionnent maintenant lorsque QCOMPARE/QSKIP est invoqué à partir de QtConcurrent.
- QTest::failOnWarning() échoue désormais pour tout type de message >= warning, y compris les messages critiques.
- Sur macOS, la mise en veille de l'écran et l'App Nap sont désormais inconditionnellement désactivés pour l'ensemble de l'exécution du test.
- Mise à jour de la prise en charge de Callgrind vers Valgrind v3.25.1, en ajoutant la prise en charge de RISCV 64-bit Linux.
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 Return peuvent être utilisées pour naviguer entre les touches du clavier lorsque le panneau de saisie est visible. La valeur par défaut de la propriété est basée sur l'indicateur de configuration du moment de la construction
QT_VIRTUALKEYBOARD_ARROW_KEY_NAVIGATION. - Ajout de la propriété keyboardDesignMaximumHeight au type KeyboardStyle. Cette propriété permet d'éviter que le clavier n'empiète sur la majeure partie de l'écran.
Qt WebEngine Module
- Qt WebEngine est maintenant basé sur Chromium 140.
- Chromium a ajouté de nouveaux composants Rust qui sont destinés à remplacer leurs homologues C++. Qt WebEngine peut maintenant être optionnellement construit en utilisant ces composants Rust. Cela nécessite l'installation d'une chaîne d'outils Rust et une configuration avec
-feature-webengine-rust-build. Le comportement par défaut est de construire avec les anciens composants C++. - Ajout de la politique OnlyPersistentCookies pour empêcher les cookies de session d'être sauvegardés sur le disque.
- Ajout du paramètre TrimAccessibilityIdentifiers pour forcer les attributs HTML "id" à être utilisés comme ID d'automatisation pour l'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 d'origine croisée. - Suppression du code API du plugin Pepper.
- Activation de la page de débogage
chrome://usb-internals.
Qt WebView Module
- Ajout de bindings C++ pour WebView, vous permettant d'utiliser le module dans des applications basées sur Qt Widgets. Les nouvelles API C++ sont publiées en tant qu'aperçu technologique et peuvent être modifiées à l'avenir.
Qt Widgets Module
- QWizard dispose d'une nouvelle option StretchBanner pour étirer la bannière sur toute la largeur de l'assistant.
- QAbstractItemView Une nouvelle propriété keyboardSearchFlags a été ajoutée, qui permet de régler la manière dont l'implémentation par défaut de keyboardSearch() fait correspondre la chaîne donnée aux données du modèle.
- QColumnView une nouvelle propriété previewColumnVisible qui spécifie si la colonne de prévisualisation est visible.
- La nouvelle classe QStyleOptionMenuItemV2 ajoute un drapeau qui indique si la souris est appuyée sur l'élément rendu par le style.
- QTabBar émet maintenant tabCloseRequested lorsqu'un onglet est cliqué au milieu si tabsClosable est vrai.
Qt XML Module
Pas de changement notable.
Outils
Générateur de documentation QDoc
- Ajout d'un support complet pour les types singleton QML, incluant une nouvelle commande
\qmlsingletontype, la détection automatique de la macroQML_SINGLETON, et la reconnaissance depragma singletondans 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 de la syntaxe pour les identificateurs qualifiés et le balisage correct pour la notation des propriétés telles queanchors.fillet les propriétés attaché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 documentation. QDoc génère des fichiers<project>_toc.xmlpour les barres latérales de navigation. - La commande \overload prend 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 contextuelle pour les signaux et les emplacements surchargés.
- La variable de configuration
includeprivatepermet de documenter les membres C++ privés. Les fonctions virtuelles pures sont désormais documentées sans condition. - Concepts C++20: QDoc extrait et affiche désormais les clauses C++20 requires pour les modèles de fonctions et de classes. Les positions des contraintes de tête et de fin de modèle sont prises en charge.
- La commande \code accepte désormais un argument facultatif pour spécifier le langage de programmation du bloc de code. Utilisez "text" pour désactiver la coloration syntaxique.
- L'argument
\meta keywordsajoute des mots-clés personnalisés en tant qu'éléments HTML<meta>pour l'optimisation des moteurs de recherche et le post-traitement. - Les liens explicites vers les propriétés attachées de QML sont désormais pris en charge à l'aide du critère de lien "attached", ce qui permet une désambiguïsation en cas de conflit entre les noms de propriétés normales et attachées.
- Les déclarations de modèles comportant plus de deux paramètres sont désormais affichées dans un format multiligne pour une meilleure lisibilité. La sortie HTML utilise la classe CSS
template-blockpour un style personnalisé. - QDoc signale désormais les propriétés C++ non documentées déclarées avec
Q_PROPERTY, ce qui garantit une couverture documentaire cohérente pour tous les éléments de l'API. - QDoc met désormais en garde contre les liens automatiques dans les commandes
\salorsqu'un document est lié à lui-même. - La variable de configuration
logwarningspermet à QDoc d'écrire tous les avertissements dans un fichier<project>-qdoc-warnings.log. La nouvelle sous-optionlogwarnings.disablecliargsomet les arguments CLI dans l'en-tête du journal pour les journaux portables. - Les avertissements de QDoc incluent maintenant 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 sans marqueurs de coloration syntaxique 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 constructions multi-modules.internalfilepatterns: Marquage automatique des classes comme internes en fonction des noms de fichiers/chemins d'accès, tels que*_p.h.projectroot: Définit le répertoire racine pour la conversion des chemins absolus en chemins relatifs dans les journaux d'avertissement, ce qui améliore la portabilité dans les environnements de construction. Également disponible sous la forme de la variable d'environnementQDOC_PROJECT_ROOT.
- Les commandes de formatage fonctionnent désormais dans les arguments de
\title,\generatelistfonctionne correctement dans les structures TOC des projets d'aide de Qt Help, et les préfixes d'énumérateurs personnalisés sont pris en charge dans\qmlenum. - La structure HTML pour la documentation des membres QML et C++ est unifiée. Ce changement 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 enums scopés, de la gestion de l'héritage QML avec détection des cycles, et de la préservation correcte des types déclarés et des informations sur les variables dans les fichiers d'index.
- Ajout de la compatibilité LLVM/Clang 21, avec la version minimale supportée mise à jour à 17.0.6.
- La commande
\tableofcontentsest officiellement obsolète.
Qt Linguist
- Ajout des étiquettes comme moyen de catégoriser les traductions basées sur l'ID en groupes significatifs sans affecter le comportement de l'exécution. Voir la documentation sur les traductions basées sur l'ID du texte et l'article de blog pour plus de détails.
- Ajout de nouveaux exemples i18n à la documentation.
- Ajout de la traduction AI pour Qt Linguist pour les traductions automatiques utilisant les LLM. Voir la documentation sur la traduction AI et le billet de blog pour plus de détails.
- Ajout de l'exécutable ltext2id pour migrer les projets de la traduction textuelle à la traduction basée sur l'ID. Voir Using ltext2id pour plus de détails
- Ajout de l'exécutable lcheck pour effectuer une validation par lot sur les fichiers TS. Voir Utilisation de lcheck pour plus de détails.
- Ajout de la prise en charge des attributs C++ dans l'analyseur syntaxique de lupdate.
- Utilisation obsolète des métastrings //= dans l'analyseur syntaxique de lupdate.
- L'option
lupdate -propour le traitement direct des fichiers .pro est obsolète. Utilisezlupdate-proà la place. - Suppression de l'exécutable lprodump. Sa fonctionnalité est maintenant disponible via l'option
lupdate-pro -dump-json.
Changements dans la plateforme
Changements dans le système de construction
- Ajout d'une option de configuration -generate-vcpkg-manifest. Cela génère un fichier vcpkg.json dans le répertoire de construction. Pour générer le manifeste sans configurer Qt, exécutez configure avec -generate-vcpkg-manifest -dry-run.
- Lors de la configuration avec -vcpkg, générez un fichier manifeste vcpkg dans le répertoire de construction, et définissez VCPKG_MANIFEST_DIR au répertoire de construction pour utiliser ce fichier manifeste. Vous pouvez désactiver la génération du manifeste avec -no-generate-vcpkg-manifest. Vous pouvez désactiver la définition du répertoire du manifeste en passant -UVCPKG_MANIFEST_DIR à configure.
Plates-formes de bureau
Plateformes de bureau
- Ajout de la prise en charge et de la détection de Windows 11 25H2 (Build 10.0.26200) via QOperatingSystemVersion.
- Il y a plusieurs améliorations d'accessibilité aux fenêtres de premier niveau et au focus.
- Amélioration de la gestion de la mise à jour du taux de rafraîchissement.
- Ajout d'un support expérimental pour 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 on ARM et configurez et compilez Qt comme vous le faites normalement.
Linux
- Le plugin Wayland a gagné la répétition des touches côté serveur, la préférence pour les décorations côté serveur, le support expérimental pour
xx-session-management-v1, et de nombreuses corrections de stabilité (popups, défilement, surfaces hors écran, presse-papiers). - Le moteur de peinture natif X11 (XRender) pour XCB a été supprimé. L'utilisation de ce moteur nécessitait de l'activer à la compilation avec une option CMake (
-xcb-native-painting) et de l'activer à l'exécution avec la variable d'environnementQT_XCB_NATIVE_PAINTING. - L'accessibilité a été améliorée par l'ajout de la prise en charge de l'interface AT-SPI Collection, qui fournit un mécanisme plus efficace pour récupérer les objets accessibles dans 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 à des fichiers situés en dehors du bac à sable de l'application (ressources sécurisées), tant en lecture qu'en écriture. Les fichiers ou dossiers choisis par l'utilisateur via des boîtes de dialogue de fichiers ou un mécanisme natif similaire sont automatiquement traités de manière transparente, y compris l'accès persistant à travers les redémarrages 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 grand nombre de formats d'image, y compris QImage::Format_RGB30 et les formats à virgule flottante importants pour le contenu HDR.
- Le moteur d'icônes Apple respecte désormais la direction de la mise en page du peintre, produisant des icônes spécifiques au langage 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 d'ouverture/enregistrement natifs sont désormais normalisés NFC, ce qui garantit des comparaisons cohérentes des noms de fichiers, que le système de fichiers stocke ou non les noms sous la forme NFD.
Plates-formes 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 livraison de fonctionnalités du Play Store.
- Prise en charge d'Android 16.
- Mise à jour vers Gradle 9.3.1 et Android Gradle Plugin 9.0.0.
- Mise à jour vers JDK 21 LTS et compatibilité améliorée vers JDK 17 LTS.
Qt Quick pour Android
- Ajout de QtQuickView.invokeMethod() pour appeler les 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 demandes externes d'ouverture de fichiers.
- Les applications en bac à sable peuvent désormais accéder à des fichiers situés en dehors du bac à sable de l'application (ressources sécurisées), tant en lecture qu'en écriture. Les fichiers ou dossiers choisis par l'utilisateur via des boîtes de dialogue de fichiers ou un mécanisme natif similaire sont traités automatiquement et de manière transparente, y compris l'accès persistant lors des redémarrages de l'application et de l'appareil.
- Ajout de la prise en charge des boîtes de dialogue d'enregistrement natives.
Plates-formes embarquées
Linux
- EGLFS/KMS supporte désormais le branchement et le rechargement à chaud des écrans au moment de l'exécution (protégé par la variable d'environnement
QT_QPA_EGLFS_HOTPLUG_ENABLED). - Un nouveau backend QNetworkInformation basé sur ConnMan a été ajouté.
- DirectFB : le mappage de Qt::Key_Call a été ajouté.
Boot to Qt
- Nouvelles plates-formes de niveau 2:
- NXP i.MX 8M Plus LDDPR4 EVK
- Toradex i.MX 95 Verdin
- Kit de vision Qualcomm RB3 Gen2
Plates-formes Web
WebAssembly
- Qt Positioning a obtenu un backend pour l'API GeoLocation.
- Utilisez le nouvel outil
wasmdeployqtpour déployer et expédier des applications Qt for WebAssembly liées dynamiquement. Cet outil remplace les scripts Python précédentspreload_qt_plugins.pyetpreload_qml_imports.py.
Liste des modifications apportées à l'API
Ces pages contiennent une vue d'ensemble des changements de l'API dans Qt 6.11 :
Problèmes connus
Pour des informations sur les problèmes connus dans Qt 6.11, voir le Qt Wiki.
© 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.