Sur cette page

Nouveautés de Qt 6.8

Modules nouveaux et réintroduits 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, n'est plus en préversion technique. L'outil prend en charge un sous-ensemble statique du profil « SVG Tiny 1.2 ».
  • Le Qt Graphs, Qt HTTP Server, Qt Protobufet Qt GRPC modules sont tous sortis de la phase de préversion technique.
  • Ajout du Qt Quick Vector Image module permettant d’afficher des documents SVG sous forme de graphiques vectoriels redimensionnables dans une scène d’ Qt Quick.

Modules supprimés dans Qt 6.8

Le module suivant est obsolète. Nous déconseillons fortement de l’utiliser dans du nouveau code.

Qt 3D Module

Le Qt 3D module est obsolète. Qt 3D fait toujours partie du logiciel sous licence et reste intégré au projet Qt. Le module continuera d’être intégré aux autres modules dans les prochaines versions. Les bogues critiques et les failles de sécurité seront traités par les responsables du module chez KDAB. Concernant les nouvelles fonctionnalités, les utilisateurs doivent contacter KDAB par e-mail à l'adresse info@kdab.com.

Nouvelles fonctionnalités de Qt 6.8

Qt Core Le module

Qt Graphs Module

Qt Graphs3D

Qt Graphs2D

Qt GRPC Le module

  • Qt GRPC n'est plus en version « tech preview ».
  • 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 partiellement un flux côté client.

Qt GUI Le module

  • QStyleHints::colorScheme dispose désormais d’une fonction setter permettant aux applications de tenter de remplacer le paramètre système par un thème Dark ou Light explicite.
  • Ajout de la propriété ` QFont::ContextFontMerging`, qui permet d’activer un nouvel algorithme de fusion des polices prenant en compte la chaîne complète lors de la sélection des polices de secours. Cela peut entraîner un coût supplémentaire, mais dans certains cas, cela donnera de meilleurs résultats.
  • Ajout de la stratégie de style QFont::PreferTypoLineMetrics, qui peut être configurée pour toujours privilégier les métriques de ligne typographiques dans les polices OpenType, même si la police ne définit pas manuellement l’indicateur USE_TYPO_METRICS.
  • Ajout de la prise en charge des schémas d’URL personnalisés QDesktopServices et https pour macOS, à l’instar de ce qui existe sous iOS.
  • QImage::Format_CMYK8888 Le format d’image CMJN 32 bits a été ajouté.
  • QColorSpace La prise en charge du traitement des espaces colorimétriques ICC A2B a été ajoutée, ainsi qu’une prise en charge explicite des espaces colorimétriques en niveaux de gris et CMJN.
  • Prise en charge des espaces colorimétriques HDR QColorSpace::Bt2020, QColorSpace::Bt2100Pq et QColorSpace::Bt2100Hlg.
  • QColorSpace::transformModel() renvoie le modèle de traitement sous-jacent.
  • QColorSpace::colorModel() renvoie le modèle de couleur pour lequel l’espace colorimétrique a été conçu.
  • QImage::colorTransformed() et les variantes de QImage::applyColorTransform() à trois arguments ont été ajoutées pour prendre en charge la conversion simultanée du format d’image et de l’espace colorimétrique.
  • QStyleHints::contextMenuTrigger est une propriété modifiable qui permet aux applications de contrôler si les menus contextuels doivent s’ouvrir lorsque l’on appuie sur un bouton ou lorsque l’on relâche celui-ci.
  • Les interfaces d’accessibilité Qt prennent désormais en charge la transmission d’ attributes sous forme de paires clé/valeur aux clients.
  • QAccessibleAnnouncementEvent peut être déclenché par les applications pour demander la lecture d’un message par les technologies d’assistance.
  • QPageLayout::setMargins peut désormais accepter un paramètre d’ OutOfBoundsPolicy facultatif pour indiquer si les marges hors limites doivent être rejetées ou écrêtées.
  • QPdfWriter Prise en charge CMJN ajoutée pour les stylos et les remplissages.
  • QFontDatabase a gagné l’ addApplicationFallbackFontFamily permettant de spécifier les familles de polices de secours par défaut pour des scripts spécifiques.
  • Prise en charge du rendu multivue finalisée dans l’ QRhi. Le rendu multivue est désormais également pris en charge avec les implémentations de Vulkan 1.1, sans nécessiter Vulkan 1.2. Cela concerne en particulier les appareils basés sur Android, tels que le Meta Quest 3.
  • Ajout de la prise en charge d’ QRhi pour la conversion automatique du rendu de profondeur à échantillonnage multiple (profondeur/stencil) en une texture de profondeur sans échantillonnage multiple (profondeur/stencil), sur les plateformes et les API où cela est pris en charge. Voir QRhiTextureRenderTargetDescription::setDepthResolveTexture() et QRhi::ResolveDepthStencil pour plus de détails.

Qt Multimedia Module

  • Ajout des classes ` QVideoFrameInput ` et ` QAudioBufferInput`, qui permettent d’envoyer des données multimédia personnalisées à ` QMediaRecorder ` via ` QMediaCaptureSession`.
  • Ajout de la classe QAudioBufferOutput, qui permet de recevoir des données audio décodées provenant de QMediaPlayer.
  • Ajout de la classe QAbstractVideoBuffer, permettant la création d’instances de QVideoFrame avec des données vidéo personnalisées.
  • QMediaRecorder Il est possible d'écrire la sortie multimédia dans ` QIODevice`.
  • Ajout de la prise en charge d’ QScreenCapture sous Linux à l’aide du compositeur Wayland, qui prend en charge le service ScreenCast via XDG Desktop Portal.
  • La bibliothèque FFmpeg est liée dynamiquement au plugin FFmpeg, et les modules FFmpeg partagés utilisés sont fournis avec Qt Multimedia.
  • Ajout de la prise en charge du backend multimédia FFmpeg sur iOS.
  • La version minimale requise de GStreamer a été portée à 1.20.

Qt Network Le module

Qt Network Module d’authentification

  • Ajout de la classe ` QOAuthUriSchemeReplyHandler `, qui gère les redirections vers des schémas URI privés/personnalisés et HTTPS (plateformes prises en charge : iOS, Android et macOS).
  • Ajout de la prise en charge de la méthode « Proof of Key Code Exchange » (PKCE) à la classe ` QOAuth2AuthorizationCodeFlow `. La méthode PKCE est une mesure de sécurité recommandée pour atténuer les attaques par interception de code d’autorisation.
  • Suite aux retours de plusieurs utilisateurs, nous sommes revenus sur le code et avons corrigé de nombreux problèmes dans le but d’améliorer globalement qnetworkauth. Cela inclut plusieurs corrections de bogues, améliorations, dépréciations, ajouts à la documentation, ainsi qu’un document de présentation pour faciliter la prise en main.

Qt Positioning Module

  • Le backend Android d’ Qt Positioning peut désormais fournir l’altitude au format MSL sur Android 14 et versions ultérieures.

Qt Protobuf Module

  • Le Qt Protobuf module n'est plus en version « tech preview ».

Qt Qml Module

  • Ajout de nouvelles fonctionnalités à QML Language Server: mise en évidence sémantique, prise en charge étendue du langage JavaScript, prise en charge des extraits de code pour les types Quick, astuces de documentation, renommage des fichiers QML, prise en charge de la configuration des avertissements « .qmllint.ini »
  • Ajout de ` pragma ValueTypeBehavior: Assertable`. Cela permet une vérification correcte des types avec les conversions `as` sur les types de valeur. Sans ce pragma, l’utilisation de `as` avec un type de valeur crée une instance de ce type plutôt que de simplement vérifier le type. Le nouvel attribut garantit que les conversions `as` fonctionnent correctement pour les assertions de type.
  • Amélioration de la gestion des types de valeur. qmllint émet désormais un avertissement lors de la construction de types de valeur 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 désormais disposer de constructeurs par défaut et sont mieux intégrés au système de types.
  • Introduction d’un ramasse-miettes incrémental pour améliorer la réactivité des applications. Le ramasse-miettes effectue désormais son travail de manière incrémentale sur plusieurs trames au lieu de bloquer l’exécution pendant de longues périodes. Cela réduit considérablement les temps de pause et offre des performances plus fluides, en particulier pour les applications complexes. Le ramasse-miettes 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 mémoire
    • Des 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 plus de cohérence.
  • Les types de valeurs constructibles peuvent désormais être créés directement en QML à l’aide de la syntaxe du constructeur, ce qui permet une initialisation plus propre des types de valeurs tels que color, rect et les 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ées sont utilisées. QTP0005 permet l’utilisation de cibles lors de la spécification des importations et des dépendances.

Qt Quick Compiler

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

Qt Quick Module

  • Ajout de la propriété `font.contextFontMerging`, qui permet d’activer un nouvel algorithme de fusion des polices prenant en compte l’intégralité du texte lors de la sélection des polices de secours. Cela peut entraîner un surcoût, mais dans certains cas, cela donnera de meilleurs résultats.
  • Ajout de la propriété `font.preferTypoLineMetrics`, qui peut être définie pour toujours privilégier les métriques de ligne typographiques dans les polices OpenType, même si la police ne définit pas manuellement l’indicateur ` USE_TYPO_METRICS `.
  • Ajout de la propriété ` retainWhileLoading ` à ` Image ` et ` BorderImage`. Lorsqu’elle est définie sur ` true ` pour les images chargées 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 les scintillements.
  • Ajout de ` PlanarTransform`, un objet utilitaire fournissant des fonctions simples pour spécifier des matrices de transformation 2D.
  • Ajout de PathRectangle, un tracé rectangulaire pouvant être arrondi en option pour Shape et PathView.
  • Ajout de la propriété Drag.imageSourceSize pour contrôler la taille de l’image représentant les données en cours de glissement.
  • Ajout de la propriété ` QQuickRenderTarget::depthTexture ` permettant de définir une texture de profondeur personnalisée.
  • Ajout de l’énumérateur ` QQuickRenderTarget::Flag ` pour permettre de spécifier un format d’affichage lors de la construction via les constructeurs nommés.
  • TableView Prend désormais en charge le déplacement programmatique et interactif des éléments « columns » et « rows ».
  • Tous les éléments et matériaux standard d’ Qt Quick sont désormais compatibles avec le rendu multivue. Cette fonctionnalité est utilisée de manière transparente par les applications lorsque du contenu 2D est intégré dans une scène XR d’ Qt Quick 3D et que le rendu multivue est activé. Le rendu multivue peut améliorer les performances de rendu et réduire la consommation d’énergie des appareils AR/VR.
  • La création de matériaux personnalisés compatibles avec le rendu multivue (QSGMaterial, QSGMaterialShader) est rendue possible via la méthode ` QSGMaterial::viewCount()` ().
  • Ajout de la prise en charge du rendu Qt Quick vers un tableau de textures 2D avec le rendu multivue dans QQuickRenderTarget. Cela est rendu possible grâce à de nouvelles surcharges de fonctions telles que QQuickRenderTarget::fromVulkanImage(), et constitue la base de la prise en charge du rendu multivue pour les applications XR développées avec Qt Quick 3D.
  • Ajout de la prise en charge de l’exécution automatique de l’ multisample resolve à la fin d’un passage de rendu dans QQuickRenderTarget. Auparavant, le rendu multisample des scènes Qt Quick redirigées n’était possible qu’en ciblant des textures multisample, laissant la résolution à la charge de l’application ou de ses shaders. Lorsqu’il est activé, l’ Qt Quick crée désormais automatiquement des textures intermédiaires multisample destinées à servir de tampon de couleur, et effectue automatiquement la résolution dans la texture non multisample fournie par l’application. Cela permet de rendre les textures cibles d’ Qt Quick s fournies par un moteur, un framework ou une API externe (par exemple, OpenXR) qui ne fournit et n’utilise que des textures non multisample.
  • Ajout de la prise en charge de l’option « setting a depth texture » dans ` QQuickRenderTarget`. Cela permet de spécifier la texture propre à l’application (ou un tableau de textures, en cas de rendu multivue) dans laquelle les données de profondeur sont écrites, au lieu d’utiliser les tampons intermédiaires propres à Qt. Ceci est particulièrement utile lorsque les données de profondeur doivent être écrites dans une texture de profondeur fournie par un moteur, un framework ou une API externe (par exemple, OpenXR).
  • Ajout de la prise en charge de la spécification d’un format de vue de texture dans QQuickRenderTarget. Celle-ci est spécifiée via l’argument viewFormat dans les nouvelles surcharges de QQuickRenderTarget::fromVulkanImage() et autres fonctions similaires. Cette fonctionnalité est fournie spécifiquement pour permettre de supprimer ou d’ajouter le qualificatif sRGB au format de texture ; elle est utile lorsqu’il faut travailler avec des textures fournies par un moteur, un framework ou un compositeur XR externe, où le contrôle du format de texture n’est pas disponible, alors que la conversion implicite linéaire vers sRGB effectuée par les API 3D lors des écritures de shader n’est pas acceptable (par exemple, parce que le pipeline de matériaux 3D d’ 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-échantillonnage 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 se traduire par des gains de performances dans les applications et les bibliothèques qui doivent transmettre une texture native différente à l’ QQuickWindow à chaque image (par exemple, parce que la texture provient d’un pool de tampons géré par un moteur externe, un framework ou un compositeur XR).

Qt Quick Controls Module

  • Ajout du style FluentWinUI3, un style moderne d’aspect natif conçu pour les plateformes fonctionnant sous Windows 11 et versions ultérieures.
  • Ajout d’une nouvelle propriété ` popupType ` à ` Popup` et aux types dérivés. Elle permet de contrôler si la fenêtre contextuelle doit s’afficher dans la scène ou apparaître dans sa propre fenêtre contextuelle de niveau supérieur.
  • Le style macOS permet désormais de créer des éléments natifs de type ` menus ` et ` menubars`.
  • Les types du module (interne) QtQuick.Controls.impl, tels que PaddedRectangle, MnemonicLabel ou autres, ne sont plus exposés par inadvertance à un document important QtQuick.Controls ou n’importe quel style de contrôles. Ces types font partie de l’API privée et n’étaient pas censés être accessibles sans importation explicite de QtQuick.Controls.impl.

Qt Quick Module Shapes

  • Ajout de la propriété `ShapePath.fillItem `. Elle permet de prendre n’importe quel élément fourni par un fournisseur de textures (tel que des éléments superposés ou des images) et de l’utiliser comme remplissage de la forme.
  • Ajout de la propriété ` ShapePath.fillTransform `, qui permet d’appliquer une transformation arbitraire au 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 de la réalité étendue (XR) pour Qt Quick 3D
    • Prise en charge des casques de réalité virtuelle (HMD) utilisant OpenXR, tels que les Meta Quest 2 et 3.
    • Prise en charge d’Apple Vision Pro.
    • Rendu multi-vues (rendu des deux yeux en une seule passe).
    • Prise en charge des entrées spatiales via le suivi des mains ou des manettes.
    • Prise en charge des ancrages spatiaux.
  • Amélioration du rendu des ombres
    • Améliorations générales de la qualité.
    • Outils de débogage des ombres améliorés.
    • Cartes d'ombres en cascade.
    • Ombres douces avec filtrage « Percentage-Closer Filtering » (PCF).
  • PrincipledMaterial Améliorations
    • Paramètres supplémentaires pour ajuster l'effet Fresnel.
    • Prise en charge du masquage des propriétés basé sur l'attribut de couleur des sommets.
  • CustomMaterial: exposition des propriétés restantes de PrincipledMaterial.

Qt Quick Module VectorImage

  • Introduction d'VectorImage: un composant permettant de rendre directement des graphiques vectoriels Qt Quick avec accélération matérielle et sans pré-rasterisation. Il prend actuellement en charge le format SVG (un sous-ensemble statique du profil SVG Tiny 1.2 ).

Module Qt Shader Tools

  • Prise en charge complète des shaders compatibles avec le rendu multivue. Ajout du mot-clé « MULTIVIEW » à la fonction CMake `qt_add_shaders() `.
  • Prise en charge des fichiers de dépendance (depfile) pour les shaders traités lors de la compilation via qt_add_shaders(). Toute modification d’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 compilation du projet.

Module Qt Sql

Qt Test Module

  • Ajout des macros C++ et des variables d’environnement QTEST_THROW_ON_FAIL et QTEST_THROW_ON_SKIP qui, lorsqu’elles sont définies, modifient la manière dont QCOMPARE()/QVERIFY()/QSKIP() etc. quittent la fonction de test en cas d’échec. Au lieu d’un retour, qui ne quitte que la fonction immédiatement environnante, elles lèvent une exception spéciale, ce qui permet de quitter les sous-fonctions de la fonction de test, jusqu’à QtTestLib.
  • Les macros QTRY_*_WITH_TIMEOUT acceptent désormais également des littéraux chrono (auparavant : int millisecondes).
  • QTest::failOnWarning() dispose désormais d’une surcharge sans paramètre pour prendre en charge le cas courant d’échec à la moindre alerte, sans avoir à construire une expression régulière correspondant à tout.
  • QSignalSpy ne hérite plus de ` QObject`. Si votre code s’appuie sur le fait que ` QSignalSpy ` est une instance de ` QObject`, vous devez désormais le repenser en conséquence.
  • 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 existante ` isValid()` pour déterminer si un objet ` QSignalSpy ` donné écoute un signal valide sur un objet valide.
  • Les macros QCOMPARE_xx ne peuvent désormais détecter que les développements de QTest::toString() qui sont soit trouvés via une recherche dépendante des arguments (Argument Dependent Lookup) sur le type en question, soit une instanciation du modèle QTest::toString<T>(). Ce comportement correspond à celui 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 erronés vers de la documentation inexistante pour les fonctions d'accès aux propriétés non documentées.
  • Le système de compilation ne définit plus QDOC2_COMPAT.
  • Lors de la génération de fichiers DocBook, QDoc n'échappe plus les caractères plusieurs fois.
  • La commande ` \instantiates ` est obsolète. Utilisez plutôt la nouvelle commande ` \nativetype `. L'ancienne commande redirige désormais vers la nouvelle, et QDoc génère un avis signalant 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 de la mise en forme du tableau des prérequis 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’existe pas de documentation d’ \group s associée.
  • QDoc génère désormais des titres pour les espaces de noms dans les fichiers .qhp, et non plus uniquement pour les classes et les types.
  • QDoc analyse désormais correctement les options de ligne de commande de la commande « -DDEFINE=VALUE ».
  • QDoc génère de nouveaux avertissements si :
    • l'attribut indexTitle du sous-projet qhp est introuvable.
    • 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.
    • Des fonctions précédemment sélectionnées comme surchargées, qui ne sont pas explicitement marquées avec la commande ` \overload `, et qui, en raison de modifications de tri, sont sélectionnées comme signature principale. Elles doivent soit être documentées dans leur intégralité, soit être marquées avec la commande ` \overload `.
  • QDoc n'émet plus d'avertissement concernant les paramètres non documentés dans les constructeurs surchargés, et certains avertissements de liaison superflus ont été supprimés.
  • Les avertissements de liaison indiquent désormais des emplacements pertinents.
  • QDoc nécessite désormais Clang 17 ou une version plus récente.
  • Le manuel de QDoc a fait l’objet de nombreuses mises à jour.
  • Vous pouvez marquer les marques déposées à l'aide de la nouvelle commande « \tm ». Si vous définissez la variable de configuration « navigation.trademarkspage », le symbole de marque déposée (tm) devient un lien vers cette page.
  • La commande « \deprecated command » accepte désormais les versions futures.
  • Les arguments de la macro QDoc acceptent désormais les commandes de mise en forme.
  • 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 modifie plus le contenu de « 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 vers les entrées de la table des matières.
  • Lors de la génération de sortie HTML, QDoc n'ajoute désormais le balisage translate="no" qu'aux liens vers les entités de l'API.
  • Les conflits de noms lors de la compilation de documentation multi-projets ont été réduits. Cela peut avoir un impact sur les noms des fichiers générés dans certaines configurations.
  • Les cibles CMake peuvent désormais être spécifiées à l’aide de la nouvelle commande ` \qtcmaketargetitem `.
  • La prise en charge des arguments de fonction avec indice a été supprimée. Cette fonctionnalité n’était pas documentée, n’était pas utilisée et comportait de nombreux bogues. Sa suppression évite la construction et la tentative de correspondance d’expressions régulières sur chaque signature de fonction documentée et chaque argument de la commande ` \a `.
  • L'apparence des liens vers les signatures de fonctions est désormais plus cohérente.
  • QDoc prend désormais en charge les valeurs générées automatiquement dans la documentation QML à partir des énumérations C++.
  • Les variables de configuration ` outputprefixes ` et ` outputsuffixes ` s’appliquent désormais à la documentation des types C++ ainsi qu’à celle des types et modules QML. Cela peut s’avérer pratique dans les configurations de documentation multi-modules où deux modules ou plus définissent les mêmes noms de types.

Modifications apportées aux plateformes

Plateformes de bureau

Ordinateurs de bureau basés sur Arm

  • Vous pouvez désormais compiler et développer des applications Qt et Qt sur des ordinateurs de bureau Windows sous Arm.
  • Vous pouvez désormais compiler et développer Qt et des applications Qt sur des ordinateurs de bureau Linux équipés d'un processeur Arm.

Windows

  • Le système de polices a été modifié 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 de la prise en charge de macOS 15
  • Ajout de la prise en charge des marges de zone de sécurité, à la fois pour l'encoche de la caméra dans les applications en plein écran, et pour les fenêtres dont le contenu s'étend jusqu'à la barre de titre.
  • Correction du scintillement lors du redimensionnement des fenêtres « Qt Quick », grâce à la présentation de la couche Metal via une transaction.
  • Activation de l’exécution des animations lors du redimensionnement des fenêtres d’ Qt Quick.
  • Adoption de la nouvelle API NSCursor pour les curseurs de redimensionnement du cadre de fenêtre
  • Implémentation 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 utilisé sous GNOME et adoptant une esthétique similaire à celle de GNOME.
  • Le statut modal des boîtes de dialogue est désormais transmis au compositeur via le nouveau protocole xdg-dialog-v1.
  • L'affichage d'une fenêtre entraîne désormais une demande d'activation auprès du compositeur (sauf si l'Qt::WA_ShowWithoutActivating est défini).
  • Ajout de la prise en charge dans qtwaylandscanner pour envoyer « null » lorsque l’ QString est à « null ».
  • Ajout des options ` PUBLIC_CODE ` et ` PRIVATE_CODE ` à la fonction ` qt_generate_wayland_protocol_client_sources() `, qui contrôlent les options transmises à ` wayland-scanner`.
  • Implémentation de la fonctionnalité de capture d’écran à l’aide du service ScreenCast via XDG Desktop Portal dans Qt Multimedia.

Plateformes mobiles

Android

  • La version minimale prise en charge a été portée à Android 9.
  • Ajout de la prise en charge de la propriété d'espace de noms build.gradle.
  • Ajout d’une propriété CMake « QT_ANDROID_PACKAGE_NAME » pour définir le nom du package.
  • Mise à jour de Gradle vers la version 8.10 et d’AGP vers la version 8.6.0.
  • Ajout de la prise en charge de la compilation des paquets de bibliothèques AAR.
  • Le backend Android natif a été déprécié dans Qt Multimedia.
  • Lors de l'ouverture de bibliothèques avec QLibrary, JNI_OnLoad n'est plus appelé par défaut.
  • QtQuickView et intégration QML :
    • Ajout de la prise en charge du typage fort pour l'API QtQuickView.
    • Ajout d’une API pour gérer le contenu QML ; dans ce cadre, les classes Java de QtQuickView ont été déplacées vers leurs propres classes. Cela inclut :
      • QtQuickView.SignalListener vers QtSignalListener.
      • QtQuickView.StatusChangeListener vers QtQmlStatusChangeListener.
      • QtQuickView Status vers QtQmlStatus.
    • Ajout des classes Java QtAbstractItemModel, QtAbstractListModel et QtModelIndex, qui encapsulent respectivement QAbstractItemModel, QAbstractListModel et QModelIndex.
    • Ajout de la prise en charge de l'intégration de QML à partir d'un service.

iOS

  • Ajout de la prise en charge d’iOS 18
  • Correction d'un rapport erroné de UIDevice.currentDevice.orientation via QScreen::orientation()
  • Amélioration de l'intégration de l'accessibilité.

visionOS

  • Ajout d'une prise en charge préliminaire de visionOS.

Plateformes embarquées

QNX

  • Ajout de la prise en charge de QNX 8.0 en tant qu'aperçu technologique.
  • QNX 8.0 ne prend pas en charge le multimédia ; utilisez l'option « -skip qtmultimedia » lors de la configuration.

VxWorks

  • Ajout de la prise en charge de VxWorks 24.03.

Boot to Qt

Liste des modifications apportées aux API

Ces pages présentent un aperçu des modifications apportées aux 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.