Nouveautés de Qt 6.6
Modules nouveaux et restaurés dans Qt 6.6
Qt 6.6 ajoute les modules et outils suivants :
Modules nouveaux et restaurés dans l'aperçu technologique
Note : La stabilité de l'API et de l'ABI n'est pas garantie.
Qt Graphs Le module
Qt Graphs est censé être le module de remplacement de Qt Data Visualization. Il utilise Qt Quick 3D comme moteur de rendu pour fournir un support pour les backends graphiques natifs, au lieu de s'appuyer sur OpenGL 2.1, comme le fait Qt Data Visualization.
Le module fournira la plupart, sinon toutes les fonctionnalités de Qt Data Visualization. Certaines fonctionnalités avancées peuvent être incomplètes dans l'aperçu technologique.
Nouvelles fonctionnalités de Qt 6.6
Qt Core Module
- Ajout de la macro Q_NODISCARD_CTOR qui devrait être appliquée pour marquer les constructeurs nodiscard. La macro se résout en
[[nodiscard]]sur les compilateurs qui la supportent, et ne fait rien sur les autres compilateurs. - Ajout des surcharges
assign()aux conteneurs Qt suivants : QVarLengthArray, QList, QByteArray et QString. Ces fonctions sont un moyen pratique d'assigner de nouvelles données tout en réutilisant les données existantescapacity(). - Vous pouvez omettre le contenu de tout fichier ajouté au système de fichiers de ressources en spécifiant la propriété QT_DISCARD_FILE_CONTENTS source file dans CMakeLists.txt. Les nœuds du fichier seront conservés. Lorsque vous écrivez manuellement des fichiers
.qrc, vous pouvez obtenir le même effet en définissant l'attributemptyd'un nœud XMLfileàtrue. - QFileInfo La structure QTimeZone comprend une nouvelle fonction membre readSymLink() qui renvoie le chemin d'accès brut, ainsi que de nouvelles surcharges prenant un pour les fonctions liées aux horodatages.
- La structure QProcess::UnixProcessParameters et l'énumération QProcess::UnixProcessFlag peuvent être utilisées dans la nouvelle fonction membre QProcess::setUnixProcessParameters() pour modifier les paramètres spécifiques à Unix d'un processus enfant, comme la fermeture de descripteurs de fichiers superflus.
- La nouvelle classe QNativeIpcKey contient une clé native utilisée par QSharedMemory et QSystemSemaphore, ce qui permet de mieux prendre en charge les applications en bac à sable sur les plates-formes Apple. Voir Clés IPC natives pour plus d'informations.
- La plupart des API de Qt XML travaillant avec des périodes de temps ont été portées sur les types de données appropriés à partir de
std::chrono. - QXmlStreamReader::hasStandaloneDeclaration() indique si le document possède une déclaration autonome explicite.
Qt GRPC Module
- Ajout de QGrpcChannelOptions et QGrpcCallOptions. Ce sont les nouvelles méthodes pour passer des options aux canaux et aux appels.
- Ajout de QGrpcMetadata pour transmettre des métadonnées supplémentaires aux appels.
- Support intégré de QML-types pour les classes QtGRPC auto-générées.
Qt GUI Module
- Ajout de QFont::setFeatures() pour un accès direct aux caractéristiques OpenType de la police.
- QPalette a maintenant une entrée de couleur accent() qui utilise la couleur d'accentuation du système par défaut.
- Les classes de la famille QRhi sont maintenant entièrement documentées et proposées en tant qu'API avec une promesse de compatibilité limitée. L'interface matérielle de rendu Qt est une API graphique 3D et une couche d'abstraction de langage d'ombrage qui est utilisée par des modules tels que Qt Quick et Qt Quick 3D pour mettre en œuvre des moteurs de rendu et des systèmes de matériaux multiplateformes et portables qui peuvent fonctionner au-dessus de Direct 3D 11/12, Vulkan, Metal, OpenGL et OpenGL ES. Les applications qui souhaitent effectuer leur propre rendu de bas niveau sans dépendre directement d'API 3D et de langages d'ombrage potentiellement spécifiques à une plateforme peuvent désormais utiliser QRhi et les classes associées pour augmenter une scène Qt Quick, effectuer un rendu sur QWindow, effectuer un rendu hors écran dans une texture ou répartir les charges de travail de calcul du GPU. Dans les versions précédentes de Qt 6, les classes QRhi étaient entièrement privées et la documentation n'était pas fournie dans le cadre de la documentation standard de Qt. Désormais, elles sont traitées de la même manière que les classes QPA (QPlatform*), c'est-à-dire qu'elles forment un ensemble spécial de classes qui n'offrent pas tous les modèles standard et les promesses de compatibilité source/binaire des API publiques de Qt, mais qui sont néanmoins disponibles pour les développeurs d'applications de niveau intermédiaire/avancé. La documentation pour les API QRhi fait maintenant partie de la documentation standard de Qt. Introduction de l'exemple rhiwindow.
- Ajout d'un backend Direct 3D 12 pour QRhi. Cela n'affecte actuellement aucune application car le choix du backend par défaut de Qt Quick et QQuickWidget reste Direct 3D 11 sous Windows, et cela ne devrait pas changer dans un avenir proche. Le nouveau backend D3D12 doit être considéré comme expérimental pour le moment, et est utile principalement pour les applications qui ont besoin que Qt effectue son rendu via Direct 3D 12 afin de simplifier l'interopérabilité avec le propre moteur de rendu ou de calcul de l'application ou d'un composant externe nécessitant D3D12.
- Les applications Qt 6 peuvent désormais prendre en charge des formats de presse-papiers personnalisés ou spécifiques à une plateforme, en utilisant les nouvelles classes QUtiMimeConverter (pour macOS) et QWindowsMimeConverter pour Windows). Ces classes sont des versions unifiées des types QMacPasteboardMime et QWindowsMime de Qt 5. Consultez le guide de portage pour obtenir de l'aide sur l'adaptation d'une implémentation existante.
- QTextListFormat::setStart() permet à une liste de texte de commencer avec un index différent de 1.
Qt Location Module
- Les éléments de carte sont maintenant rendus plus correctement, y compris ceux qui s'enroulent autour du globe ou qui contiennent des trous.
- Les éléments de la carte peuvent maintenant être rendus en utilisant différentes surfaces de référence. L'énumération QLocation::ReferenceSurface fournit les options
MapetGlobe, qui peuvent être utilisées avec les propriétés referenceSurface dans les types d'éléments pour contrôler si un élément est rendu sur une carte plate ou s'il suit la courbure du globe. - La molette de la souris peut modifier bearing lorsque le modificateur Shift est maintenu, ou modifier tilt lorsque le modificateur Control est maintenu.
Qt Multimedia Module
- La bibliothèque Qt Multimedia ne demande plus les autorisations audio ou vidéo, mais vérifie seulement si elles sont fournies ou non. Les applications clientes doivent demander les autorisations à l'aide de l'API C++ ou QML.
- La nouvelle classe QWindowCapture permet de capturer des vidéos de fenêtres d'applications de bureau individuelles à l'intérieur d'un site QMediaCaptureSession. La vidéo enregistrée peut être dirigée vers n'importe quel type de sortie vidéo, par exemple vers QMediaRecorder ou QVideoWidget. La capture de fenêtres n'est prise en charge qu'avec le backend FFmpeg.
- QMediaRecorder a été étendu avec des propriétés qui permettent un meilleur contrôle de la qualité vidéo, de la résolution et des débits binaires.
Qt PDF Module
- La nouvelle classe QPdfLinkModel fournit la géométrie des liens et les destinations sur une page donnée.
- QPdfDocument::pageModel() implémente Qt::DecorationRole pour rendre les vignettes de page à la demande.
- La nouvelle classe QPdfPageSelector est une classe spécialisée QSpinBox pour la sélection d'une page dans les visionneuses PDF basées sur des widgets.
Qt Positioning Module
- La bibliothèque Qt Positioning ne demande plus les autorisations de localisation, mais vérifie seulement si elles sont fournies ou non. Les applications clientes doivent demander les autorisations à l'aide de l'API C++ ou QML.
Qt Protobuf Module
- Activation de l'utilisation de certains types Qt Core et Qt GUI dans le cadre du schéma *.proto.
- Prise en charge intégrée des types QML pour les classes QProtobufMessage générées automatiquement.
- Migration vers les données implicitement partagées pour les classes QProtobufMessage auto-générées. Cela permet d'accéder aux types de messages par valeur à partir d'un contexte QML sans faire beaucoup de copies.
- Ajout du support de Qt Protobuf Well-Known Types pour le type google.protobuf.Any.
- Support intégré pour le type oneof, un type de type union dans protobuf, qui n'a pas besoin de contenir une valeur.
Qt Bluetooth Module
- La bibliothèque Qt Bluetooth ne demande plus les permissions bluetooth, mais vérifie seulement si elles sont fournies ou non. Les applications clientes doivent demander les autorisations à l'aide de l'API C++ ou QML.
- Qt fournit maintenant un type natif 128-bit unsigned int sous le nom de quint128. Sur les plateformes qui le supportent, le constructeur QBluetoothUuid(quint128) et la méthode QBluetoothUuid::toUInt128() utilisent maintenant ce type au lieu d'une structure personnalisée que les versions précédentes de Qt utilisaient. Tant que votre code traite quint128 comme un type opaque, le changement est compatible avec les sources et les binaires, mais envisagez d'utiliser les nouvelles surcharges de QUuid::Id128Bytes si vous rencontrez des problèmes. Les plateformes qui ne supportent pas les types int 128 bits (comme MSVC) utilisent toujours la structure personnalisée de Qt Bluetooth.
Module Qt QML
- Ajout d'un support pour la gestion des permissions d'application via QML. Qt Qml Le module Qt Qt Core expose la fonctionnalité Qt C++ Application Permissions à QML via un ensemble de types de permission qui peuvent être utilisés pour vérifier ou demander une permission d'une manière multiplateforme. Voir QML Application Permissions pour plus d'informations.
- L'objet XMLHttpRequest a été mis à jour avec deux fonctionnalités supplémentaires, afin de le rapprocher des navigateurs modernes. La propriété responseURL a été ajoutée, qui peut être utilisée pour confirmer si des redirections ont eu lieu. De même, la méthode overrideMimeType a été ajoutée, qui peut être utilisée pour que l'objet XMLHttpRequest analyse la réponse sur la base d'un type mime spécifique, plutôt que sur la base de l'en-tête Content-Type de la réponse.
- Le QML Language Server a obtenu un support initial pour la définition de go-to et les utilisations de find. Il prend également en charge le formatage complet des documents.
- Il est maintenant possible d'étendre qmllint avec des plugins. L'API des plugins est actuellement en tech preview.
Qt Quick Module
- Ajout de la propriété font.features pour un accès direct aux caractéristiques OpenType de la police.
- TableView possède une propriété selectionMode pour contrôler si une ou plusieurs cellules peuvent être sélectionnées.
- TreeView La propriété rootIndex permet de n'afficher qu'un sous-arbre du modèle.
- AnimatedImage prend désormais en charge la propriété sourceSize.
- La variable d'environnement
QT_QUICK_FLICKABLE_WHEEL_DECELERATIONvous permet de personnaliser la décélération après un défilement avec une souris à molette "cliquable". Par défaut, l'accélération est désactivée de sorte que la distance de défilement est proportionnelle au nombre de "clics" (à moins que la plateforme ne fournisse sa propre accélération) ; mais vous pouvez définir une valeur inférieure à 15000 pour rétablir l'ancien comportement. La propriété flickDeceleration ne s'applique plus qu'aux clics tactiles. - La plupart des propriétés sont désormais FINALES, ce qui signifie qu'elles ne peuvent plus être masquées par la déclaration de nouvelles propriétés portant le même nom. Un avertissement sera émis si une propriété
FINALest mise en évidence. Nous recommandons aux utilisateurs de renommer ces propriétés afin d'éviter des changements de comportement inattendus. - Ajout et exposition d'un certain nombre de fonctions liées à QRhi dans QQuickWindow, QQuickRenderControl, et QSGTexture. L'interrogation de QRhi, QRhiSwapChain, ou QRhiCommandBuffer utilisé par le rendu à l'écran ou hors écran Qt Quick est maintenant simplifiée. Certaines fonctions auparavant cachées dans la documentation parce qu'elles s'appuyaient sur des classes QRhi* sont désormais visibles. Ajout de createTextureFromRhiTexture() à QQuickWindow servant de contrepartie à createTextureFromImage().
- Mise à jour des exemples de graphes de scène : ajout de rhiunderqml, remplacement de l'ancien exemple fboitem, uniquement OpenGL, par un nouvel exemple rhitextureitem, portable, et mise à jour de l'exemple customrendernode. Ces exemples démontrent les trois façons d'étendre une scène Qt Quick avec un rendu 2D/3D personnalisé de bas niveau (les trois approches étant : underlay/overlay, custom item backed by rendering to a texture, custom item with QSGRenderNode).
- Ajout de la propriété Path::simplified pour la simplification automatique des chemins avant leur rendu. Cela reflète la fonction QPainterPath::simplified().
- Ajout de la prise en charge de la collecte des horodatages du GPU pour le rendu de QQuickWindow. Lorsqu'elle est activée par QQuickGraphicsConfiguration's setTimestamps() ou par la variable d'environnement correspondante, la chronologie côté GPU apparaîtra dans la sortie de débogage imprimée lors de l'activation des catégories de journalisation telles que
qt.scenegraph.time.renderloop, et dans l'élément DebugView de Qt Quick 3D, en complément de la chronologie côté CPU. Cette fonctionnalité est actuellement prise en charge par Direct 3D 11, Metal et Vulkan (à condition que l'implémentation Vulkan sous-jacente prenne en charge les requêtes d'horodatage). La prise en charge du reste des API 3D sera introduite dans les prochaines versions.
Qt Quick Module de contrôle
- Ajout de la propriété live à SpinBox qui contrôle si le value est mis à jour lorsque l'utilisateur modifie le displayText.
- Ajout du signal wrapped à Dial. Ce signal est émis lorsque le cadran s'enroule, c'est-à-dire lorsqu'il passe de sa valeur maximale à sa valeur minimale, ou vice versa.
- Les propriétés startAngle et endAngle ont été ajoutées au cadran. Ces propriétés contrôlent l'angle de départ et d'arrivée du cadran en degrés.
Qt Quick Module de mise en page
- Ajout de LayoutItemProxy, un élément d'aide à l'écriture de mises en page réactives (dans l'aperçu technologique).
- Ajout des propriétés uniformCellSizes, uniformCellSizes, uniformCellWidths et uniformCellHeights applicables à chaque type de mise en page (dans l'aperçu technologique).
- StackLayout mettra désormais à jour currentIndex si un élément est inséré ou supprimé à un index inférieur ou égal à l'index actuel.
Qt Quick Module Formes
- Ajout d'un backend expérimental de rendu de courbes, qui rendra les courbes avec une meilleure qualité que le rendu géométrique par défaut et appliquera l'anticrénelage sans utiliser MSAA. Il peut être sélectionné à l'aide de la propriété Shape::preferredRendererType.
Qt Quick Module 3D
- Ajout d'une API QML pour la création procédurale de TextureData appelée ProceduralTextureData. Auparavant, cela n'était possible qu'en C++ en sous-classant QQuick3DTextureData.
- Ajout d'une API QML pour la création procédurale de la géométrie du maillage, appelée ProceduralMesh. Auparavant, cela n'était possible qu'en C++ en sous-classant QQuick3DGeometry.
- Il est désormais possible d'importer des fichiers PLY.
- Ajout de la prise en charge de la création de textures 3D avec QQuick3DTextureData.
- Ajout de la prise en charge initiale des extensions de rendu. Il s'agit des premières étapes pour permettre l'ajout de passes supplémentaires et la personnalisation des passes de rendu intégrées. View3D a une nouvelle propriété appelée extensions qui prend un tableau de sous-classes de QQuick3DRenderExtension. Ceci est également supporté par les fonctions d'aide de QQuick3DExtensionHelpers.
Module Qt SQL
- Un plugin pour Mimer SQL a été ajouté.
- MySQL/MariaDB a obtenu les nouvelles options de connexion MYSQL_OPT_PROTOCOL, MYSQL_SHARED_MEMORY_BASE_NAME, MYSQL_OPT_TLS_VERSION, MYSQL_OPT_SSL_MODE.
- Le plugin ODBC renvoie désormais tous les codes d'erreur natifs dans la section QSqlError
- QSqlQuery Deux nouvelles fonctions boundValueName()/boundValueNames() ont été ajoutées.
Qt TextToSpeech Module
La classe QTextToSpeech a appris quelques astuces supplémentaires qui sont disponibles avec tous les moteurs :
- Les applications peuvent ajouter plusieurs morceaux de texte à un moteur de synthèse via enqueue.
- Le nouveau signal aboutToSynthesize est émis juste avant qu'un morceau de texte ne soit synthétisé.
- La sélection d'une des voix fournies par le moteur à l'aide d'un ensemble de critères est désormais facile grâce à la fonction membre findVoices. Le code QML peut en outre utiliser le type VoiceSelector en tant que propriété attachée.
Toutes les nouvelles fonctionnalités ne sont pas disponibles avec tous les moteurs. Les applications peuvent utiliser le nouvel indicateur Capabilities et la propriété engineCapabilities pour vérifier quelles sont les nouvelles fonctionnalités prises en charge par le moteur actuellement utilisé :
- Si le moteur a la capacité Synthesize, QTextToSpeech peut maintenant synthétiser du texte dans des données PCM. La fonction synthesize peut être utilisée avec un objet appelable qui reçoit des morceaux de données PCM lorsqu'elles ont été synthétisées.
- Si le moteur possède la capacité WordByWordProgress, QTextToSpeech émet le signal sayingWord pour chaque mot du morceau de texte en cours au fur et à mesure qu'il est prononcé.
Qt WebEngine Module
- Ajout d'en-têtes de réponse à QWebEngineLoadingInfo.
- Possibilité d'ajouter des en-têtes de réponse supplémentaires dans QWebEngineUrlRequestJob.
- Ajout du drapeau QWebEngineUrlScheme::FetchApiAllowed pour activer l'API HTML5 Fetch pour les schémas d'url personnalisés.
- qWebEngineGetDomainAndRegistryFonction () pour lire le domaine de premier niveau effectif tel que Chromium/QtWebEngine le voit.
- Ajout du paramètre QWebEngineSettings::DisableReadingFromCanvas pour désactiver la lecture du canvas pour une protection supplémentaire contre le fingerprinting.
Qt Widgets Module
- QWidget a obtenu une nouvelle surcharge setTabOrder() qui prend une liste d'initialisation, permettant à la chaîne entière d'être définie avec un seul appel.
- QMessageBox::Option fournit les moyens de contrôler pour chaque boîte de message si une boîte de message native doit être utilisée.
Changements au niveau des plates-formes
Plates-formes de bureau
macOS
- La construction de projets utilisateurs ou de Qt pour macOS nécessite maintenant au moins la version 3.21.1 de CMake.
- QMessageBox::setCheckBox() est maintenant respecté lors de l'utilisation de boîtes de message natives.
- QFileDialog Qt ne déclenche plus inutilement des dialogues de permission.
Plates-formes mobiles
Android
- Ajout de la prise en charge de FileProvider lors de l'utilisation de QDesktopServices::openUrl().
- Ajout d'AndroidX par défaut (une dépendance pour FileProvider).
- Introduction de la politique CMake QTP0002 pour les propriétés cibles spécifiques à Android.
- Mises à jour de la liste des exemples pris en charge par Android.
- Android 13 comme version maximale supportée
- Mise à jour de Gradle vers la version 8.3.0.
- QFileDialog prend en compte tous les filtres de noms fournis et pas seulement le filtre sélectionné.
- Mise à jour du niveau SDK cible Android à 33 pour correspondre aux exigences du Play Store pour 2023.
iOS
- Ajout de la prise en charge de QWindow::setMask() pour masquer le rendu et la saisie.
- Ajout du support pour les fenêtres étrangères, pour l'intégration des UIViews dans les QWindows.
Plates-formes intégrées
Boot to Qt
- La prise en charge de Yocto 4.2 a été ajoutée (mickledore).
- Les niveaux de support pour le matériel cible ont été mis à jour avec les nouvelles cartes supportées :
- Support Tier 1 pour la carte NXP i.MX 93 ajouté.
- Support de niveau 1 pour la carte Jetson AGX Xavier ajouté.
- Support de niveau 3 pour la carte NXP i.MX 8QuadXPlus ajouté.
- Ajout du support de niveau 3 pour la carte Toradex Apalis iMX8.
- Les cibles Toradex et ST utilisent désormais la dernière version de Yocto LTS (kirkstone).
© 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.