Nouveautés de Qt 6.2
Modules nouveaux et réintroduits dans Qt 6.2
Qt 6.2 ajoute le module suivant :
- QtQuick.Dialogs - Un module QML qui fournit des boîtes de dialogue natives avec une solution de repli « Qt Quick » sur les plateformes où Qt n'en propose pas de native. Les modules « FileDialog » et « FontDialog » sont disponibles dans cette version.
Qt 6.2 réintroduit les modules suivants qui n'étaient pas présents dans Qt 6.1. Tous les modules répertoriés ont été portés vers Qt 6 et le système de compilation CMake.
Une liste plus détaillée des modifications apportées à chaque module est disponible dans la section « Modifications apportées aux modules Qt dans Qt 6 ».
- Qt Bluetooth
- La prise en charge de BlueZ 4 a été supprimée.
- Le backend Win32 a été supprimé. En conséquence, l'Qt Bluetooth ation à l'aide de Mingw-w64 n'est plus prise en charge.
- L'API QML a été supprimée.
- QBluetoothTransferManager et les classes associées ont été supprimés.
- Les fonctionnalités liées aux agents d'appairage ont été supprimées d'QBluetoothLocalDevice.
- Qt Multimedia
- Qt Multimedia L'API publique se compose de cinq grands blocs fonctionnels. Chaque API a subi des modifications importantes par rapport à Qt 5 :
- Détection des périphériques
- Audio de bas niveau
- Lecture et décodage
- Capture et enregistrement
- Pipeline de sortie vidéo
- Backends actuellement pris en charge :
- Linux : GStreamer
- Windows : WMF
- macOS/iOS : AVFoundation
- Android : API « MediaPlayer » et « Camera »
- Qt Multimedia L'API publique se compose de cinq grands blocs fonctionnels. Chaque API a subi des modifications importantes par rapport à Qt 5 :
- Qt NFC
- Suppression de la prise en charge de Linux/NearD.
- Ajout de la prise en charge d'iOS.
- Qt Positioning
- De nombreuses propriétés ont été rendues liables.
- Renommage de QGeoPolygon::path() en QGeoPolygon::perimeter.
- QGeoLocation Utilise désormais QGeoShape au lieu de QGeoRectangle comme zone de délimitation.
- Le signal «
error()» présent dans plusieurs classes de positionnement a été renommé «errorOccurred()». - QGeoPositionInfoSourceFactoryV2 a été supprimé, et QGeoPositionInfoSourceFactory prend désormais en charge des paramètres personnalisés pour les objets créés.
- La prise en charge du protocole NMEA a été repensée. Le plugin « serialnmea » a été renommé « nmea » et prend désormais en charge la lecture du flux d’entrée à partir d’un socket TCP ou d’un fichier brut. La propriété «
nmeaSource» a été supprimée.
- Qt Remote Objects
- Le backend de connexion locale prend désormais en charge les espaces de noms abstraits (il s'agit d'une extension spécifique à Linux), grâce à l'utilisation du nouveau schéma
localabstractdans l'URL. .repLes fichiers .files prennent désormais en charge :- Les énumérations de classes.
- QFlags.
- Les commentaires multilignes (style C).
- Les énumérations et les « flags » sont désormais prises en charge dans les types POD et en tant que clés pour les propriétés « QMap » et « QHash » dans les fichiers «
.rep».
- Le backend de connexion locale prend désormais en charge les espaces de noms abstraits (il s'agit d'une extension spécifique à Linux), grâce à l'utilisation du nouveau schéma
- Qt Sensors
- La plupart des propriétés orientées QML sont désormais liables.
- Sensor::type Les propriétés ` QSensor::type ` sont désormais marquées comme constantes.
- Ajout d’un paramètre à la fonction QSensorBackend::sensorBusy() permettant également de réinitialiser l’état « occupé ».
- Suppression du typedef pour qtimestamp.
- La chaîne de caractères «
type» du capteur a été renommée «sensorType». - Windows : il est désormais possible d’exiger l’API Windows 10, ce qui permet d’étendre le nombre de capteurs pris en charge.
- TI Sensor Tag a été supprimé de la liste des plateformes prises en charge.
- Le backend d'
sysfssous Linux a été supprimé. - La prise en charge des gestes des capteurs a été supprimée (vos commentaires sont les bienvenus ici : QTBUG-97066).
- La plateforme « Sensorfw » a été supprimée, car Sensorfw n’a pas encore été porté vers Qt 6.
- Les types de capteurs qui ne disposaient que du backend Sensorfw (IRProximity, Lid et Tap) ne figurent plus dans la liste des capteurs pris en charge.
- Les types de capteurs ne disposant d’aucun backend ont été supprimés (Altimeter, Distance et Holster).
- Qt Serial Bus
- QCanBusFactory a été supprimé et QCanBusFactoryV2 a été renommé QCanBusFactory.
- QModbusRtuSerialSlave et QModbusRtuSerialMaster ont été renommés respectivement QModbusRtuSerialServer et QModbusRtuSerialClient.
- Qt Serial Port
- Qt WebChannel
- QWebChannel Les propriétés sont désormais liables.
- L'intervalle de mise à jour de la propriété d'QWebChannel peut désormais être configuré. L'intervalle de mise à jour par défaut reste de 50 ms.
- QWebChannel prend désormais en charge les mises à jour des propriétés BINDABLE. Cependant, le côté client ne fournit pas de mécanisme de rappel générique si la propriété de l’hôte ne dispose pas d’un signal NOTIFY.
- Les signaux provenant d’objets situés dans un autre thread sont désormais gérés correctement (QTBUG-51366).
- Qt WebEngine
- Le sous-module d’ Qt Quick a été renommé : il s’appelle désormais QtWebEngineQuick au lieu de QtWebEngine.
- Plusieurs classes ont été déplacées de ` QtWebEngineWidgets ` vers ` QtWebEngineCore`, notamment ` QWebEnginePage`.
- Certaines fonctionnalités auparavant accessibles uniquement en dérivant de ` QWebEnginePage ` sont désormais accessibles à l'aide de signaux synchrones.
- Une API Favicon a été ajoutée à QWebEngineProfile pour rechercher des icônes correspondant à des URL spécifiques.
- La nouvelle classe QWebEngineLoadingInfo fournit davantage de détails sur la réussite ou l'échec du chargement.
- Qt WebSockets
- Qt WebView
Nouvelles fonctionnalités de Qt 6.2
Qt Core Module
- Fonctionnalités ajoutées :
- Ajout de la méthode ` QByteArrayView::compare()`.
- Ajout des méthodes QFlags::test(Any)Flag(s).
- Ajout de la fonction ` QHashSeed ` pour contrôler le hachage (les graines sont désormais de type `size_t`) ; celle-ci remplacera `qGlobalQHashSeed` et `qSetGlobalQHashSeed`.
- Ajout des macros PRIxQTDATATYPE pour faciliter le formatage de type printf() sans conversion ni avertissement.
- De nombreuses propriétés sont désormais liables.
- Les groupes de graphèmes peuvent désormais prendre en charge les emojis.
- Les chemins UNC et les partages réseau sous Windows sont désormais gérés de manière cohérente.
- La gestion du paramètre de décalage de départ, appelé «
from», dans diverses méthodesindexOf()etlastIndexOf()des conteneurs (principalement QString, QByteArray et leurs vues) est désormais plus cohérente. - À l’instar de ` QString::number()` depuis la sortie de Qt 6.0, les surcharges de ` QByteArray::number()` pour les types entiers signés renvoient désormais un texte comportant un signe moins suivi de la valeur absolue du nombre, au lieu de convertir en type non signé pour toutes les bases sauf dix, lorsqu’on leur transmet un entier négatif et n’importe quelle base prise en charge.
- QCalendar Prend désormais en charge la construction à partir de l’ID d’un backend personnalisé.
- QChar, QPoint et QPointF sont désormais des fonctions primitives plutôt que simplement relocalisables.
- QCoreApplication::exit() est désormais, tout comme quit(), un slot (comme l’indiquait depuis longtemps la documentation) ; il en va de même pour QEventLoop et QThread.
- QDateTime prend désormais en compte les fuseaux horaires sur toute la plage de time_t (dans la mesure où la plateforme fournit ces informations), plutôt que de limiter artificiellement cette plage à 1970 - 2037.
- Le comportement de ` QFlags` pour les types de valeur a été étoffé, et cette fonction est désormais utilisée de manière plus systématique.
- Lors de la compilation pour C++20, ` QList ` (et donc également ` QVector`) est désormais un `
contiguous_iterator`, satisfaisant à la normecontiguous_range. - Les méthodes QLocalSocket::waitFor*() ont été adaptées pour prendre en charge les opérations duplex sous Windows (comme elles le faisaient déjà sous Unix).
- Des surcharges std::chrono ont été ajoutées aux méthodes QLockFile, évitant ainsi des conversions inutiles entre l'heure UTC et l'heure locale.
- QString peut désormais être construit à partir de char8_t (lorsqu’il est disponible).
- La priorité des threads d'QThreadPool est désormais configurable ; les threads partagent le nom du pool s'il en possède un.
- Nombreuses corrections de bogues, nettoyages et améliorations de la documentation.
Qt GUI Module
- Ajout de formats d’image en virgule flottante à QImage pour les nombres à virgule flottante 16 bits et 32 bits.
- La conversion d’images RVB en images en niveaux de gris, ou l’application de couleurs RVB sur ces dernières, bénéficie désormais d’une correction gamma et produit les valeurs de luminance de l’espace colorimétrique d’entrée.
- L’attribut CSS `text-decoration-color ` est désormais pris en charge dans les balises `span` de texte enrichi, avec le soulignement, le surlignement et le barré.
Qt Quick Module
- Ajout de la prise en charge de la sélection de cellules dans un ` TableView ` en lui attribuant un ` ItemSelectionModel`.
Qt Quick Controls Module
- Ajout d’un nouveau contrôle : « SelectionRectangle ». Ce contrôle permet de sélectionner des cellules dans un « TableView » à l’aide d’un rectangle de sélection stylisé.
Qt Widgets Module
- Ajout de PM_LineEditIconSize, une nouvelle valeur d’énumération de QStyle::PixelMetric qui permet aux styles de définir une taille par défaut pour les icônes dans un QLineEdit.
- La nouvelle méthode ` QGraphicsSceneEvent::timestamp ` renvoie l'horodatage de l'événement d'origine, le cas échéant.
- QGraphicsSceneWheelEvent::phase, QGraphicsSceneWheelEvent::pixelDelta et QGraphicsSceneWheelEvent::isInverted renvoient respectivement les attributs de l’ QWheelEvent d’origine.
Qt Network Module
- QSslSocket
- Les backends TLS qui avaient auparavant (dans Qt 6.1) été convertis en classes de type plugin ont été retirés de QtNetwork et implémentés en tant que véritables plugins.
- Plusieurs backends TLS peuvent désormais coexister lors de l'exécution, par exemple OpenSSL et Schannel, ou OpenSSL et SecureTransport.
- QNetworkInformation
- Introduction de ` isBehindCaptivePortal`, une nouvelle propriété permettant de déterminer si l'utilisateur est connecté à un réseau doté d'un portail captif.
Module Qt Qml
- Langage de base
- Ajout de la prise en charge du chaînage optionnel.
- Ajout de la syntaxe « as »: cela facilite principalement l'utilisation des outils, mais peut également servir à remplacer du code tel que `
return (obj instanceof Item) ? obj.width : 42` par `(obj as Item)?.width ?? 42`. - Ajout de la prise en charge des annotations de dépréciation dans les fichiers QML, permettant de marquer des types et des propriétés comme dépréciés à l’aide de `
@Deprecated`.
- Système de modules
- Ajout de la directive `
prefer` dans les fichiers `qmldir`. Cette directive est générée automatiquement par CMake et provoque le chargement du module QML à partir du système de fichiers de ressources. Cela permet d’utiliser des fichiers QML compilés à l’avance. - Ajout de la variable d’environnement `
QML_IMPORT_PATH` comme meilleure alternative à la variable `QML2_IMPORT_PATH`.
- Ajout de la directive `
- Ajout d’une API CMake publique pour les modules QML :
qt_add_qml_module().- Se charge de générer
qmldiretqmltypes. - Permet de créer automatiquement un plugin si celui-ci se contente d’enregistrer des types.
- Intègre une prise en charge native d’une cible de linting.
- Se charge de générer
- Outils QML
qmllint- Ajout d’un paramètre fin pour le niveau de gravité des avertissements ; les avertissements peuvent être complètement désactivés, considérés comme purement informatifs, ou entraîner un code de sortie différent de zéro.
- Ajout d'un fichier de paramètres (.qmllint.ini) permettant de configurer les niveaux d'avertissement répertoire par répertoire. Un fichier de paramètres par défaut peut être généré à l'aide de
qmllint --write-defaults. - Les avertissements peuvent désormais être désactivés par blocs à l’aide de commentaires ;
//qmllint enable/disable <warning-type1> <warning-type2...> - Les performances ont été considérablement améliorées lors de l'analyse des fichiers, en particulier lors de l'analyse de plusieurs fichiers comportant de nombreuses importations.
- Ajout de la prise en charge de la sortie JSON pour une utilisation dans des outils.
qmlformatqmlformatutilise désormais notre nouvelle bibliothèque qmldom et devrait généralement produire un meilleur résultat.
Qt Quick Module 3D
- Ajout de la prise en charge du rendu instancié, une méthode optimisée permettant de dessiner plusieurs instances d’un même objet avec des transformations différentes.
- Ajout des particules 3D, une API permettant d’ajouter des effets de particules aux scènes 3D. Cela inclut un aperçu technologique des particules de fusion de modèles.
- Ajout d’événements d’entrée « Qt Quick » pour les éléments 2D en 3D, tant dans la scène que dans les textures.
- Ajout d’une API permettant la sélection par rayons à partir de points arbitraires dans la scène.
- Ajout de l’ RuntimeLoader, permettant de charger des fichiers glTF2 lors de l’exécution.
- Mise en œuvre du parallax occlusion mapping: permet d’utiliser des cartes d’altitude sans avoir à ajouter de géométrie.
- Implémentation du mode de rendu en profondeur sur les matériaux : permet un contrôle précis du rendu en profondeur d’un matériau.
Qt Data Visualization Module
- Correction du mode de rendu d'arrière-plan.
- La fonction RenderDirectToBackground_NoClear a été dépréciée, car le choix de ne pas effacer la fenêtre n’est plus une option dans Qt 6.
- Nombreuses corrections de bugs mineurs.
Qt Charts Module
- Ajout de nouvelles formes de marqueurs parmi lesquelles choisir dans QScatterSeries et QLegend.
- Ajout d'une fonctionnalité de marqueurs légers à QXYSeries et QLegend. Il s'agit d'un rendu plus léger des points.
- Ajout de la possibilité de sélectionner des points dans une série via des appels de méthode à QXYSeries et QBarSet.
- Ajout de la possibilité de définir une couleur ou d'utiliser un marqueur clair personnalisé pour les points sélectionnés dans QXYSeries.
- Ajout de la possibilité de définir une couleur à utiliser pour les barres sélectionnées dans QBarSet.
- Ajout d’une fonctionnalité permettant d’afficher une droite de régression dans une instance de QXYSeries.
- Ajout de la possibilité de personnaliser l’apparence de chaque point dans une instance de QXYSeries. Cette fonctionnalité permet de définir la visibilité, la visibilité de l’étiquette et la taille de chaque point.
- Ajout d’une méthode sizeBy() à QXYSeries qui ajuste la taille des points d’une série en fonction des valeurs transmises.
- Ajout d’une méthode colorBy() à QXYSeries qui ajuste la couleur des points d’une série en fonction des valeurs transmises et d’un dégradé.
- Ajout d’une nouvelle classe d’axe, QColorAxis, pour prendre en charge la fonctionnalité colorBy(), permettant d’afficher une échelle de couleurs.
- Ajout de la possibilité de désactiver la troncature des étiquettes sur les axes.
- Amélioration des performances grâce à la mise en cache des limites de texte récemment utilisées.
- Ajout d’une prise en charge interactive à QLegend via la méthode ` setInteractive()`. Une fois activée, cette fonctionnalité permet de détacher la légende par un double-clic. Une fois détachée, la légende peut être déplacée et redimensionnée, puis rattachée à un côté du graphique en la faisant glisser hors du bord.
- Ajout du signal ` attachedToChartChanged()` à `QLegend`.
- Mise à jour de l’exemple de légende.
Qt for Python
- De nouveaux exemples, tutoriels et vidéos ont été ajoutés à la documentation deQt for Python .
- Compatible avec Python 3.10rc2.
- Ajout des modules QtDBus, QtNetworkAuth et QtBluetooth.
- Ajout d’une nouvelle fonctionnalité de Shiboken, les conteneurs opaques, afin d’éviter de copier des conteneurs C++ dans Python pour pouvoir les utiliser.
- Vous pouvez désormais utiliser
qtpathsà la place deqmakelors de la compilation de PySide à partir du code source. - Ajout de la prise en charge de std::function pour certaines méthodes de QThreadPool.
- Ajout de nouvelles fonctions QML ainsi que de la prise en charge de ` qmlRegisterSingletonInstance`.
Modifications apportées aux plateformes
Plateformes en préversion technologique
Windows sur ARM
- Ajout de Windows sur ARM64 en tant que plateforme de préversion technologique.
- Prise en charge en tant que cible de compilation ; pas encore de prise en charge de l'hôte.
- Limitations connues :
- Qt WebEngine n'est pas encore pris en charge ; il manque la prise en charge officielle de Chromium.
- Pas encore de prise en charge de SSL ; absence de prise en charge officielle d'OpenSSL.
Plateformes de bureau
macOS sur Apple Silicon
- Ajout de la prise en charge officielle à la fois en tant que plateforme cible et plateforme hôte.
- Les bibliothèques du SDK Qt sont compilées sous forme de binaires universels.
- Limitations connues :
- La prise en charge SSL fait défaut.
- Les plugins de base de donnéesPostgreSQL et ODBC sont absents (QTBUG-93204).
- La prise en charge JIT fait défaut (QTBUG-93206).
Client Wayland sous Linux
- Un geste de pincement sur le pavé tactile génère désormais des QNativeGestureEvents de zoom et de rotation si le compositeur les envoie via le protocole pointer-gestures-unstable-v1. Cela permet à une Qt Quick PinchHandler de fonctionner via des gestes de pincement sur le pavé tactile. Les gestes à deux, trois ou quatre doigts sont reconnus. Un geste de type Qt::PanNativeGesture peut être généré en balayant l’écran avec trois ou quatre doigts. Le balayage à deux doigts génère toujours des événements « QWheelEvent» comme auparavant.
Plateformes mobiles
Android
- Certaines méthodes qui se trouvaient auparavant sous l’espace de noms QtAndroid dans QtAndroidExtras (par exemple, sdkVersion() et context()) ont été déplacées vers QNativeInterface::QAndroidApplication.
- Une nouvelle API de permissions a été implémentée dans QCoreApplication.
- Les autres API QtAndroidExtras ont été conservées en tant qu’API privées dans qtbase jusqu’à ce que des alternatives multiplateformes (pour les Intents, les Services, etc.) soient mises en place.
- Suppression du code Ministro obsolète, celui-ci n'étant désormais plus pris en charge par Android.
- Simplification du fichier AndroidManifest.xml afin qu'il ne contienne que les balises pertinentes pour l'utilisateur, ce qui facilite la maintenance et réduit l'encombrement.
- QCDebug() et ses fonctions associées utilisent désormais la catégorie comme balise dans logcat Android.
- Mise à jour du plugin Gradle pour Android vers la version 4.1.3.
- Correction d’un bug lié à une API non-SDK concernant les styles (QTBUG-71590), bien que les styles Android des widgets sous Android 9 et versions ultérieures soient toujours affectés (QTBUG-96149).
- La valeur par défaut de `targetSdkVersion` est désormais fixée à 30, conformément aux exigences du Google Play Store.
- La version des outils de compilation et celle de la plateforme utilisées ont été mises à niveau vers la version 30.
- QDesktopServices Les gestionnaires personnalisés sont désormais activés et vous permettent, par exemple, d’utiliser les liens d’application Android.
- Ajout d’informations permettant aux applications de déterminer la source d’un intent sans créer leur propre extension de QtActivity.
- Correction des importations pour les modules QML et ajout de la possibilité d’utiliser plusieurs chemins d’accès racine QML.
- Correction des compilations Vulkan sur Android.
iOS
- Amélioration de la prise en charge de CMake.
- Problèmes connus :
- Storyboard de l'écran de démarrage par défaut manquant.
- Échec de l'installation des bibliothèques personnalisées (QTBUG-95381).
Plateformes embarquées
Disponible sous la licence Qt for Device Creation.
Boot to Qt
- La pile « Boot to Qt » a été mise à jour pour utiliser Yocto 3.3 (Hardknott).
- Ajout de l'Intel NUC10 (i5 x86 64 bits) en tant que cible de référence.
- Ajout de la carte NVidia Jetson Tegra X2 en tant que cible.
QNX
- Ajout de la version 7.1 de QNX et d'Ubuntu 20.04 en tant qu'hôte.
- Ajout de l'NXP iMX8QM en tant que cible de référence.
INTEGRITY
- Ajout de la version 19.0.13 d'INTEGRITY et d'Ubuntu 20.04 en tant qu'hôte.
- Ajout du Qualcomm Snapdragon 8155P en tant que cible de référence.
WebOS
Le fonctionnement de Qt 6.2 a été vérifié avec LG webOS OSE 2.13.1 en utilisant Ubuntu 20.04 comme hôte de développement et du matériel Raspberry Pi 4.
Liste des modifications apportées aux API
Ces pages présentent un aperçu des modifications apportées aux API dans Qt 6.2 :
© 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.