Sur cette page

Nouveautés de Qt 6.8

Modules nouveaux et restaurés dans Qt 6.8

Qt 6.8 ajoute les modules et outils suivants :

  • L'outil svgtoqml, utilisé pour générer du code QML à partir de documents SVG, est maintenant sorti de l'aperçu technique. L'outil supporte un sous-ensemble statique du profil SVG Tiny 1.2.
  • L'outil Qt Graphs, Qt HTTP Server, Qt Protobuf, et Qt GRPC sont tous promus hors de l'état de prévisualisation technique.
  • Ajout du module Qt Quick Vector Image pour afficher des documents SVG en tant que graphiques vectoriels évolutifs dans une scène Qt Quick.

Modules supprimés dans Qt 6.8

Le module suivant est obsolète. Il est fortement déconseillé de l'utiliser dans un nouveau code.

Qt 3D Module

Le module Qt 3D est obsolète. Qt 3D fait toujours partie du logiciel sous licence et du projet Qt. Le module continue d'être intégré à d'autres modules pour les prochaines versions. Les bogues critiques et les failles de sécurité seront traités par les responsables du module au KDAB. En ce qui concerne les nouvelles caractéristiques et fonctionnalités, les utilisateurs doivent contacter le KDAB en envoyant un courriel à info@kdab.com.

Nouvelles fonctionnalités de Qt 6.8

Qt Core Le module

Qt Graphs Le module

Qt Graphs3D

Qt Graphs2D

  • Ajout de la prise en charge de AreaSeries.
  • Ajout de la prise en charge des barres personnalisées à l'aide de composants QML. Voir BarSeries.barDelegate.
  • Ajout de la prise en charge des barres Stacked et StackedPercent. Voir BarSeries.barsType.
  • Ajout de la prise en charge des étiquettes de graphiques à barres. Voir BarSeries.labelsVisible.
  • Ajout de la prise en charge des mappeurs de modèles pour différentes séries. Voir XYModelMapper, BarModelMapper et PieModelMapper.
  • Ajout de la prise en charge des LegendData pour toutes les séries.
  • Ajout de la prise en charge des splineseries dynamiques.
  • Ajout de la prise en charge des titres d'axes. Voir AbstractAxis.titleText.

Qt GRPC Le module

  • Qt GRPC est promu hors de la prévisualisation technique.
  • Ajout de la prise en charge du streaming au module GrpcQuick.
  • Suppression de QGrpcInterceptor, QGrpcInterceptorManager et QGrpcInterceptorContinuation.
  • Ajout de la méthode writesDone() à QGrpcClientStream et QGrpcBidirStream pour fermer à moitié un flux du côté client.

Qt GUI Le module

  • QStyleHints::colorScheme dispose désormais d'une fonction setter qui permet aux applications d'essayer de remplacer les paramètres du système par un schéma explicite Dark ou Light.
  • Ajout de QFont::ContextFontMerging, qui peut être utilisé pour activer un nouvel algorithme de fusion des polices qui prend en compte la chaîne complète lors de la sélection des polices de remplacement. Cela peut coûter un peu plus cher, mais dans certains cas, cela donnera de meilleurs résultats.
  • Ajout de la stratégie de style QFont::PreferTypoLineMetrics, qui peut être définie pour toujours préférer la métrique de ligne typographique dans les polices OpenType, même si la police ne définit pas manuellement le drapeau USE_TYPO_METRICS.
  • Ajout du support de QDesktopServices custom et https URL scheme pour macOS, similaire à ce que iOS a.
  • QImage::Format_CMYK8888 Le format d'image CMYK 32bit a été ajouté.
  • QColorSpace La prise en charge du traitement des espaces colorimétriques ICC A2B a été ajoutée, ainsi que la prise en charge explicite des espaces colorimétriques en niveaux de gris et CMJN.
  • La prise en charge des espaces colorimétriques HDR QColorSpace::Bt2020, QColorSpace::Bt2100Pq, et QColorSpace::Bt2100Hlg a été ajoutée.
  • QColorSpace::transformModel() renvoie le modèle de traitement sous-jacent.
  • QColorSpace::colorModel() renvoie le modèle de couleur pour lequel l'espace colorimétrique est conçu.
  • QImage::colorTransformedLes variantes () et QImage::applyColorTransform() avec trois arguments ont été ajoutées pour prendre en charge la conversion du format d'image et de l'espace colorimétrique en même temps.
  • QStyleHints::contextMenuTrigger () est une propriété inscriptible qui permet aux applications de contrôler si les menus contextuels doivent être ouverts en appuyant ou en relâchant un bouton.
  • Les interfaces d'accessibilité de Qt XML peuvent désormais prendre en charge le rapport de attributes en tant que paires clé/valeur aux clients.
  • QAccessibleAnnouncementEvent Ce message peut être levé par des applications pour demander l'annonce d'un message par des technologies d'assistance.
  • QPageLayout::setMargins peut maintenant prendre un paramètre optionnel OutOfBoundsPolicy pour indiquer si les marges qui sont hors limites doivent être rejetées ou bloquées.
  • QPdfWriter Prise en charge de la couleur CMJN pour les stylos/plumes.
  • QFontDatabase addApplicationFallbackFontFamily permet de spécifier les familles de polices de remplacement par défaut pour des scripts spécifiques.
  • Achèvement de la prise en charge du rendu multiview dans QRhi. Multiview est maintenant pris en charge avec les implémentations Vulkan 1.1, au lieu de nécessiter Vulkan 1.2. Ceci est particulièrement pertinent pour les appareils basés sur Android tels que le Meta Quest 3.
  • Introduction du support QRhi pour la résolution automatique du rendu de profondeur multi-échantillon (profondeur/crayon) dans une texture de profondeur non multi-échantillon (profondeur/crayon), sur les plateformes et les API où cela peut être supporté. Voir QRhiTextureRenderTargetDescription::setDepthResolveTexture() et QRhi::ResolveDepthStencil pour plus de détails.

Qt Multimedia Module

  • Ajout des classes QVideoFrameInput et QAudioBufferInput, qui peuvent envoyer des données multimédia personnalisées à QMediaRecorder via QMediaCaptureSession.
  • Ajout de la classe QAudioBufferOutput, qui peut recevoir des données audio décodées de QMediaPlayer.
  • Ajout de la classe QAbstractVideoBuffer, qui permet de créer des instances QVideoFrame avec des données vidéo personnalisées.
  • QMediaRecorder La classe QIODevice peut écrire la sortie média sur .
  • Ajout de la prise en charge de QScreenCapture sur Linux à l'aide du compositeur Wayland, qui prend en charge le service ScreenCast via le portail XDG Desktop.
  • La bibliothèque FFmpeg est liée dynamiquement au plugin FFmpeg, et les modules FFmpeg partagés utilisés sont livrés avec Qt Multimedia.
  • Ajout du support pour le backend média FFmpeg sur iOS.
  • Augmentation de la version minimale requise de GStreamer à 1.20.

Qt Network Module

Qt Network Module Auth

  • Ajout de la classe QOAuthUriSchemeReplyHandler, qui gère les redirections d'URI privées/personnalisées et https (plates-formes prises en charge : iOS, Android et macOS).
  • Ajout de la prise en charge de la preuve d'échange de code clé (PKCE) à la classe QOAuth2AuthorizationCodeFlow. PKCE est une mesure de sécurité recommandée pour atténuer les attaques d'interception de code d'autorisation.
  • Suite aux commentaires de plusieurs utilisateurs, nous sommes revenus en arrière et avons abordé de nombreux problèmes dans le but d'améliorer qnetworkauth de manière générale. Cela inclut plusieurs corrections de bogues, des améliorations, des dépréciations, des ajouts à la documentation, ainsi qu'une documentation générale pour aider à la prise en main.

Qt Positioning Module

  • Le backend Android Qt Positioning peut maintenant fournir l'altitude au format MSL sur Android 14 et plus.

Qt Protobuf Module

  • Le module Qt Protobuf est promu hors de l'aperçu technique.

Qt Qml Module

  • Ajout de nouvelles fonctionnalités à QML Language Server: surlignage sémantique, plus de support pour les langages JavaScript, support des snippets pour les types Quick, aide à la documentation, renommage des fichiers QML, support de la configuration des avertissements .qmllint.ini.
  • Ajout de pragma ValueTypeBehavior: Assertable. Ceci permet une vérification correcte des types avec les castings as sur les types de valeurs. Sans ce pragma, l'utilisation de as avec un type de valeur crée une instance de ce type au lieu de simplement vérifier le type. Le nouvel attribut garantit que les casts as fonctionnent correctement pour les assertions de type.
  • Amélioration de la gestion des types de valeurs. qmllint avertit désormais lors de la construction de types de valeurs bien connus (tels que point, rect, size) à partir de chaînes de caractères, encourageant ainsi l'utilisation de constructeurs appropriés. Les types de valeur peuvent maintenant avoir des constructeurs par défaut et sont mieux intégrés au système de types.
  • Introduction du ramassage incrémental des ordures pour améliorer la réactivité des applications. Le ramasse-miettes effectue désormais son travail de manière incrémentale sur plusieurs images au lieu de bloquer l'exécution pendant de longues périodes. Cela permet de réduire considérablement les temps de pause et d'améliorer les performances, en particulier pour les applications complexes. Le GC incrémental comprend
    • une phase de marquage incrémental pour éviter les longues pauses
    • Une phase de balayage incrémental pour la récupération de la mémoire
    • Limites de temps configurables via des variables d'environnement
  • QJSEngine::collectGarbageLe comportement de () est désormais aligné sur la méthode gc() de QML pour des raisons de cohérence.
  • Les types de valeurs constructibles peuvent désormais être créés directement en QML à l'aide de la syntaxe des constructeurs, ce qui permet une initialisation plus propre des types de valeurs tels que color, rect, et des types définis par l'utilisateur.
  • Deux nouvelles politiques CMake affectant le comportement de qt_add_qml_module ont été ajoutées : QTP0004 facilite l'utilisation des modules QML lorsque des structures de dossiers imbriqués sont utilisées. QTP0005 permet l'utilisation de cibles lors de la spécification d'importations et de dépendances.

Qt Quick Compilateur

  • Le compilateur de scripts Qml enregistre désormais des statistiques sur la compilation Qml vers Cpp. Ces informations peuvent être affichées en exécutant la cible all_aotstats sur le projet.

Qt Quick Module

  • Ajout de font.contextFontMerging, qui peut être utilisé pour activer un nouvel algorithme de fusion des polices qui prend en compte le texte complet lors de la sélection des polices de repli. Cela peut coûter un peu plus cher, mais dans certains cas, cela donnera de meilleurs résultats.
  • Ajout de la propriété font.preferTypoLineMetrics, qui peut être définie pour toujours préférer la métrique de ligne typographique dans les polices OpenType, même si la police ne définit pas manuellement le drapeau USE_TYPO_METRICS.
  • Ajout de la propriété retainWhileLoading à Image et BorderImage. Lorsqu'elle vaut true pour les images qui se chargent de manière asynchrone, les données de l'image actuelle sont conservées jusqu'à ce que la nouvelle image soit entièrement chargée. Cela permet d'éviter le scintillement.
  • Ajout de PlanarTransform, un objet utilitaire fournissant des fonctions simples pour spécifier des matrices de transformation 2D.
  • Ajouté PathRectangle, un chemin de rectangle arrondi optionnel pour Shape et PathView.
  • Ajout de la propriété Drag.imageSourceSize pour contrôler la taille de l'image représentant les données glissées.
  • Ajout de QQuickRenderTarget::depthTexture pour définir une texture de profondeur personnalisée.
  • Ajout de l'énumérateur QQuickRenderTarget::Flag pour permettre de spécifier un format de vue lors de la construction via les constructeurs nommés.
  • TableView L'interface de l'interface utilisateur permet désormais de déplacer columns et rows de manière programmatique et interactive.
  • Tous les objets et matériaux standard de Qt Quick sont compatibles avec le rendu multivue. Celui-ci est utilisé de manière transparente pour les applications lorsqu'un contenu 2D est intégré dans une scène Qt Quick 3D XR et que le rendu multi-vues est activé. Le rendu multi-vues peut améliorer les performances de rendu et réduire la consommation d'énergie des dispositifs AR/VR.
  • La création de matériaux personnalisés compatibles avec le multiview (QSGMaterial, QSGMaterialShader) est rendue possible par QSGMaterial::viewCount().
  • Ajout d'un support pour diriger le rendu Qt Quick dans un tableau de textures 2D avec Multiview Rendering dans QQuickRenderTarget. Ceci est réalisé via de nouvelles surcharges de fonctions telles que QQuickRenderTarget::fromVulkanImage(), et constitue la base de la prise en charge du rendu multi-vues pour les applications XR construites avec Qt Quick 3D.
  • Ajout de la prise en charge de l'exécution automatique de multisample resolve à la fin d'une passe de rendu dans QQuickRenderTarget. Auparavant, le rendu multi-échantillon des scènes Qt Quick redirigées n'était possible qu'en ciblant les textures multi-échantillon, laissant la résolution à l'application ou à ses shaders. Lorsque cette option est activée, Qt Quick crée désormais automatiquement des textures multi-échantillons intermédiaires à utiliser comme tampon de couleur, en effectuant automatiquement la résolution dans la texture non multi-échantillon fournie par l'application. Cela permet de rendre Qt Quick en ciblant les textures fournies par un moteur externe, une structure ou une API (par exemple, OpenXR) qui ne fournit et ne consomme que des textures sans multi-échantillon.
  • Ajout de la prise en charge de setting a depth texture dans QQuickRenderTarget. Cela permet de spécifier la propre texture de l'application (ou le tableau de textures, lors de l'utilisation du rendu multivue) où les données de profondeur sont écrites, au lieu d'utiliser les propres tampons intermédiaires de Qt. Utile en particulier lorsque les données de profondeur doivent être écrites dans une texture de profondeur fournie par un moteur externe, une structure ou une API (par exemple, OpenXR).
  • Ajout de la prise en charge de la spécification d'un format de vue de texture dans QQuickRenderTarget. Il est spécifié via l'argument viewFormat dans les nouvelles surcharges pour QQuickRenderTarget::fromVulkanImage() et similaires. Cette fonctionnalité est fournie spécifiquement pour permettre de supprimer ou d'ajouter le qualificatif sRGB au format de texture, et est utile lorsqu'il faut travailler avec des textures fournies par un moteur externe, un framework ou un compositeur XR, lorsque le contrôle sur le format de texture n'est pas disponible, mais que la conversion implicite linéaire->sRGB des API 3D lors de l'écriture des shaders n'est pas acceptable (par exemple, parce que le pipeline de matériaux 3D de Qt Quick effectue déjà la même opération).
  • QQuickRenderTargetLa gestion interne des tampons intermédiaires pour les données de profondeur/stencil et de couleur multi-échantillon a été repensée. L'appel à QQuickWindow::setRenderTarget() n'invalide plus tous les tampons temporaires internes, mais tente plutôt de les réutiliser tant que la taille, le format et les autres paramètres correspondent. Cela devrait permettre d'améliorer les performances des applications et des bibliothèques qui doivent transmettre une texture native différente à QQuickWindow à chaque image (par exemple, parce que la texture provient d'un pool de tampons géré par un moteur externe, un cadre de travail ou un compositeur XR).

Qt Quick Module Contrôles

  • Ajout du style FluentWinUI3, un style natif moderne conçu pour les plates-formes fonctionnant sous Windows 11 et plus.
  • Ajout d'une nouvelle propriété popupType à Popup, et aux types dérivés. Elle peut être utilisée pour contrôler si la fenêtre contextuelle doit être dans la scène ou si elle doit apparaître dans sa propre fenêtre contextuelle de niveau supérieur.
  • Le style macOS est maintenant capable de créer les types natifs menus et menubars.
  • Les types du module (interne) QtQuick.Controls.impl, tels que PaddedRectangle ou MnemonicLabel ou similaires, ne sont plus exposés accidentellement à tout document qui importe QtQuick.Controls ou tout style de contrôle. Ces types sont des API privées et n'ont jamais été censés être accessibles sans importer explicitement QtQuick.Controls.impl.

Qt Quick Module Shapes

  • Ajout de la propriété ShapePath.fillItem. Elle peut être utilisée pour prendre n'importe quel élément fournisseur de texture (comme les éléments en couches et les images) et l'utiliser comme remplissage pour la forme.
  • Ajout de la propriété ShapePath.fillTransform, qui peut être utilisée pour définir une transformation arbitraire sur le remplissage de la forme, qu'il s'agisse d'un élément ou d'un dégradé.

Qt Quick Module 3D

  • Aperçu technologique de la prise en charge par XR de Qt Quick 3D
    • Prise en charge des écrans montés sur la tête (HMD) utilisant OpenXR, tels que Meta Quest 2 et 3.
    • Prise en charge d'Apple Vision Pro.
    • Rendu multi-vues (rendu des deux yeux en un seul passage).
    • Prise en charge des entrées spatiales via le suivi des mains ou des contrôleurs.
    • Prise en charge des ancres spatiales.
  • Amélioration du rendu des ombres
    • Amélioration de la qualité générale.
    • Outils de débogage des ombres améliorés.
    • Cartes d'ombres en cascade.
    • Ombres douces par filtrage en pourcentage (PCF).
  • PrincipledMaterial Améliorations
    • Paramètres supplémentaires pour l'ajustement de Fresnel.
    • Prise en charge du masquage des propriétés basé sur l'attribut de couleur des vertex.
  • CustomMaterialModule VectorImage : expose les propriétés restantes à partir de PrincipledMaterial.

Qt Quick Module VectorImage

  • Introduction du module VectorImage: un composant qui peut être utilisé pour rendre des graphiques vectoriels directement sur Qt Quick avec l'accélération matérielle et sans pré-rastérisation. Il prend actuellement en charge le format SVG (un sous-ensemble statique du profil SVG Tiny 1.2 ).

Module Qt Shader Tools

  • Fin de la prise en charge des shaders compatibles avec le rendu multivue. Ajout du mot-clé MULTIVIEW à l'intégration du système de construction Qt Shader Tools .
  • Ajout du support depfile pour les shaders traités au moment de la construction via qt_add_shaders(). Toucher un fichier inclus via la directive #include dans un shader déclenchera désormais une recompilation de ce fichier de shader lors de la prochaine construction du projet.

Qt SQL Module

Qt Test Module

  • Ajout de QTEST_THROW_ON_FAIL et QTEST_THROW_ON_SKIP, macros C++ et variables d'environnement qui, lorsqu'elles sont définies, modifient la façon dont QCOMPARE()/QVERIFY()/QSKIP() etc. sortent de la fonction de test en cas d'échec. Au lieu d'un retour, ne sortant que de la fonction immédiatement environnante, elles lancent une exception spéciale, sortant ainsi des sous-fonctions de la fonction de test, jusqu'à QtTestLib.
  • Les macros QTRY_*_WITH_TIMEOUT acceptent maintenant aussi les littéraux chrono (anciennement : int millisecondes).
  • QTest::failOnWarning() a maintenant une surcharge sans paramètre pour supporter le cas commun de fail-on-any-warning, sans avoir besoin de construire une expression régulière match-everything.
  • QSignalSpy n'hérite plus de QObject. Si votre code utilise le fait que QSignalSpy est un QObject, vous devez maintenant revoir votre conception.
  • La méthode QSignalSpy::signal() ne renvoie plus nécessairement un tableau d'octets vide en cas d'échec de la connexion. Utilisez la méthode isValid() existante pour déterminer si un objet QSignalSpy donné écoute un signal valide sur un objet valide.
  • Les macros QCOMPARE_xx ne peuvent désormais trouver que les expansions QTest::toString() qui sont soit trouvées via la recherche dépendante de l'argument sur le type en question, soit qui sont une instanciation du modèle QTest::toString<T>(). Cela correspond au comportement de la macro QCOMPARE().

Qt WebEngine Module

Outils

Générateur de documentation QDoc

  • Vous pouvez désormais utiliser la commande \keyword pour créer un lien vers le titre d'une section, afin d'améliorer l'aide contextuelle.
  • QDoc ne crée plus de liens incorrects vers une documentation inexistante pour les fonctions d'accès aux propriétés non documentées.
  • Le système de construction ne définit plus QDOC2_COMPAT.
  • Lors de la génération de la sortie DocBook, QDoc n'échappe plus les caractères plusieurs fois.
  • La commande \instantiates est obsolète. Utilisez la nouvelle commande \nativetype à la place. L'ancienne commande est désormais déléguée à la nouvelle, et QDoc génère un avis concernant son obsolescence.
  • Vous pouvez spécifier auto comme type de retour pour les fonctions afin de masquer le type complet dans la documentation générée.
  • Amélioration du formatage du tableau des conditions requises dans la documentation de l'API.
  • QDoc génère moins de rapports en double dans sa sortie vers stdout.
  • Les fichiers .qhp contiennent désormais (correctement) des entrées pour les éléments de groupe créés avec la commande \ingroup lorsqu'il n'y a pas de documentation \group associée.
  • QDoc génère maintenant des titres pour les espaces de noms dans les fichiers .qhp, et pas seulement pour les classes et les types.
  • QDoc analyse maintenant correctement les options de la ligne de commande -DDEFINE=VALUE.
  • QDoc génère de nouveaux avertissements si :
    • l'attribut indexTitle du sous-projet qhp n'est pas trouvé.
    • Si la commande \nativetype est utilisée plusieurs fois pour la même classe C++.
    • Lors de la génération d'un fichier plusieurs fois par projet.
    • Les fonctions précédemment sélectionnées comme surcharge qui ne sont pas explicitement marquées par la commande \overload et qui, en raison de changements dans le tri, sont sélectionnées comme signature primaire. Elles doivent être soit documentées dans leur intégralité, soit marquées avec la commande \overload.
  • QDoc ne signale plus les paramètres non documentés dans les constructeurs surchargés, et certains avertissements de liens inutiles ont été supprimés.
  • Les avertissements sur les liens indiquent désormais des emplacements raisonnables.
  • QDoc nécessite maintenant Clang 17 ou une version plus récente.
  • Le manuel QDoc a reçu plusieurs mises à jour.
  • Vous pouvez marquer les marques avec la nouvelle commande \tm. Si vous définissez la variable de configuration navigation.trademarkspage, le symbole de la marque (tm) devient un lien vers cette page.
  • La commande \deprecated command accepte désormais les versions futures.
  • Les arguments des macros QDoc acceptent désormais les commandes de formatage.
  • La commande \compareswith autorise désormais les arguments entre accolades.
  • L'option de ligne de commande -outputdir est désormais relative au répertoire de travail actuel. De plus, la variable de configuration nosubdirs ne mélange plus ce qui se trouve dans outputdir.
  • La variable de configuration clangdefines, inutilisée et non documentée, a été supprimée.
  • QDoc ne génère plus de fichiers .qhp.sha1.
  • QDoc génère désormais des références uniques aux entrées de la table des matières.
  • Lors de la génération de la sortie HTML, QDoc ne décore plus que les liens vers les entités API avec translate="no".
  • Les collisions de noms pour les documentations multi-projets ont été réduites. Cela peut avoir un impact sur les noms de fichiers générés dans certaines configurations.
  • Les cibles CMake peuvent désormais être spécifiées avec la nouvelle commande \qtcmaketargetitem.
  • La prise en charge des arguments de fonction en indice a été supprimée. Cette fonctionnalité n'était pas documentée, n'était pas utilisée et comportait des bogues. Sa suppression permet d'éviter la construction et la tentative de correspondance d'expressions régulières pour chaque signature de fonction documentée et chaque argument de la commande \a.
  • Les liens vers les signatures de fonctions sont désormais plus cohérents.
  • QDoc prend désormais en charge les valeurs auto-générées dans la documentation QML à partir des enums C++.
  • Les variables de configuration outputprefixes et outputsuffixes s'appliquent désormais à la documentation des types C++ ainsi qu'à la documentation des types et des modules QML. Cela peut être pratique dans les configurations de documentation multi-module où deux modules ou plus définissent les mêmes noms de type.

Changements au niveau des plates-formes

Plates-formes de bureau

Ordinateurs de bureau basés sur Arm

  • Vous pouvez maintenant construire et développer Qt et des applications Qt sur des ordinateurs de bureau Windows on Arm.
  • Vous pouvez désormais créer et développer Qt et des applications Qt sur des ordinateurs de bureau Linux on Arm.

Windows

  • Modification du système de polices pour utiliser DirectWrite comme backend par défaut. Cela permet de bénéficier de certaines fonctionnalités modernes qui n'étaient pas disponibles avec l'ancien backend GDI. L'ancien backend est toujours disponible et peut être activé en passant fontengine=gdi comme paramètre au plugin QPA.

macOS

  • Ajout du support pour macOS 15
  • Ajout de la prise en charge des marges de sécurité, à la fois pour l'encoche de la caméra dans les applications plein écran, et pour les fenêtres où le contenu s'étend jusqu'à la barre de titre.
  • Correction du scintillement lors du redimensionnement des fenêtres Qt Quick, en présentant la couche Metal avec transaction.
  • Activation des animations en cours d'exécution lors du redimensionnement des fenêtres Qt Quick.
  • Adoption de la nouvelle API NSCursor pour les curseurs de redimensionnement des cadres de fenêtres.
  • Mise en œuvre du protocole NSServicesMenuRequestor pour la prise en charge du menu Services et des outils d'écriture.

Client Wayland sous Linux

  • Ajout d'un nouveau style de décoration de fenêtre qui est utilisé sur GNOME et utilise un style similaire à celui de GNOME.
  • Le statut modal des dialogues est maintenant transmis au compositeur via le nouveau protocole xdg-dialog-v1.
  • L'affichage d'une fenêtre demandera désormais également l'activation du compositeur (sauf si Qt::WA_ShowWithoutActivating est activé).
  • Ajout d'un support à qtwaylandscanner pour l'envoi de null pour QString.
  • Ajout des options PUBLIC_CODE et PRIVATE_CODE à qt6_generate_wayland_protocol_client_sources qui contrôlent les options passées à wayland-scanner.
  • Mise en œuvre de la fonction de capture d'écran à l'aide du service ScreenCast via le portail XDG Desktop à l'adresse Qt Multimedia.

Plates-formes mobiles

Android

  • Augmentation de la version minimale supportée à Android 9.
  • Ajout de la prise en charge de la propriété build.gradle namespace.
  • Ajout d'une propriété CMake QT_ANDROID_PACKAGE_NAME pour définir le nom du paquet.
  • Mise à jour de Gradle vers la version 8.10 et de AGP vers la version 8.6.0.
  • Ajout de la prise en charge de la construction des paquets de bibliothèque AAR.
  • Suppression du backend Android natif dans Qt Multimedia.
  • Lors de l'ouverture de bibliothèques avec QLibrary, JNI_OnLoad n'est plus appelé par défaut.
  • QtQuickView et QML Embedding :
    • Ajout de la prise en charge du typage fort pour l'API QtQuickView.
    • Ajout d'une API pour gérer le contenu QML, dans le cadre de laquelle les classes Java sous QtQuickView ont été déplacées vers des classes propres. Cela inclut :
      • QtQuickView.SignalListener en QtSignalListener.
      • QtQuickView.StatusChangeListener en QtQmlStatusChangeListener.
      • QtQuickView Status en QtQmlStatus.
    • Ajout des classes Java QtAbstractItemModel, QtAbstractListModel et QtModelIndex, qui englobent respectivement QAbstractItemModel, QAbstractListModel, et QModelIndex.
    • Ajout de la prise en charge de l'intégration de QML à partir d'un service.

iOS

  • Ajout du support pour iOS 18
  • Correction du rapport erroné de UIDevice.currentDevice.orientation via QScreen::orientation()
  • Amélioration de l'intégration de l'accessibilité.

visionOS

  • Ajout d'un support préliminaire pour visionOS.

Plates-formes embarquées

QNX

  • Ajout de la prise en charge de QNX 8.0 en tant qu'aperçu technologique.
  • QNX 8.0 n'a pas de support multimédia, utilisez -skip qtmultimedia sur configure.

VxWorks

  • Ajout du support de VxWorks 24.03.

Boot to Qt

  • Le support de Yocto 5.0 (Scarthgap) a été ajouté.
  • Les niveaux de support pour le matériel cible ont été mis à jour avec de nouvelles cartes supportées pour le niveau 1 :
    • Raspberry Pi 5.
  • Les niveaux de support pour le matériel cible ont été mis à jour avec les nouvelles cartes supportées pour le niveau 2 :
    • NVIDIA Jetson AGX Orin Developer Kit (mise à niveau depuis le niveau 3).
    • Raspberry Pi 4 64-bit (rétrogradé du niveau 1).
  • Les niveaux de support pour le matériel cible ont été mis à jour avec de nouvelles cartes supportées pour le niveau 3 :
    • NXP i.MX95 (comme expérimental via le portail client Qt).
    • Kit d'évaluation Toradex i.MX 95 Verdin (expérimental via le portail client Qt).
    • StarFive VisionFive 2.
    • ST STM32MP15 Evaluation (déclassé du niveau 2).
    • NXP Kit d'évaluation i.MX 8MQuad (déclassé du niveau 2).

Liste des modifications de l'API

Ces pages contiennent une vue d'ensemble des changements d'API dans Qt 6.8 :

© 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.