La société Qt Company a publié la version 6.6 du framework Qt, poursuivant ainsi son travail sur la stabilisation et l'enrichissement des fonctionnalités de la branche Qt 6. Qt 6.6 prend en charge les plateformes Windows 10+, macOS 11+, Linux (Ubuntu 22.04, openSUSE 15.4, SUSE 15 SP4, RHEL 8.6/9.0), iOS 14+, Android 8+ (API 23+), webOS, WebAssembly, INTEGRITY et QNX. Les sources des composants Qt sont fournies sous les licences LGPLv3 et GPLv2.
Les principales modifications apportées à Qt 6.6 :
- Le module Qt Quick a introduit un support expĂ©rimental pour la mise en page adaptative de l'interface. Pour modifier dynamiquement la disposition de l'interface en fonction de la taille de la fenĂȘtre et pour le placement automatique des Ă©lĂ©ments en tenant compte de la structure de la disposition actuelle, une classe LayoutItemProxy a Ă©tĂ© proposĂ©e. De plus, le module Qt Quick Layouts offre la possibilitĂ© d'utiliser des tailles de cellules uniformes pour les mises en page avec des Ă©lĂ©ments disposĂ©s en grille, en lignes et en colonnes.

- Qt Quick a ajouté le support des modes de sélection (propriété selectionMode) dans le type QML TableView (par exemple, il est possible de gérer la sélection des cellules, des lignes, des colonnes et des ensembles de cellules). Il est désormais possible de modifier la propriété rootIndex. Dans le type QML TreeView, la gestion du style des barres de défilement (scroll-deceleration) a été étendue dans le type QML Flickable, ainsi que la réduction automatique des chemins de fichiers. L'accÚs à l'API de gestion des autorisations depuis QML a été offert.
- Un module expérimental Qt Graphs a été ajouté, visant à fournir un module universel pour la visualisation de grandes collections de données en évolution rapide et la création de divers types de graphiques. Ce module est en cours de développement en tant que remplaçant universel des anciens modules Qt DataVisualization, basé sur OpenGL, et Qt Charts. Le module est encore en développement et se concentre actuellement sur la réintroduction des fonctionnalités de Qt DataVisualization sur Qt Quick 3D et sur l'utilisation d'un nouveau moteur de rendu (RHI, Rendering Hardware Interface) prenant en charge divers API 3D (OpenGL, Vulkan, Metal et Direct 3D).

- Le module Qt Multimedia a ajoutĂ© la classe QWindowCapture pour capturer le contenu de fenĂȘtres individuelles, complĂ©tant la classe QScreenCapture introduite dans la version prĂ©cĂ©dente, qui Ă©tait limitĂ©e Ă la capture de l'ensemble de l'Ă©cran. QWindowCapture permet d'obtenir une liste des fenĂȘtres disponibles pour la capture et peut ĂȘtre utilisĂ©e dans des applications pour partager des fenĂȘtres. La capture d'Ă©cran et de fenĂȘtres est supportĂ©e en utilisant le backend FFmpeg sur toutes les plateformes, Ă l'exception des systĂšmes utilisant le protocole Wayland.
- La classe QMediaRecorder a ajouté des propriétés pour contrÎler la qualité vidéo, la résolution et le débit binaire.
- Les capacités des modules Qt GRPC et Qt Protobuf ont été élargies, permettant d'accéder aux services gRPC et de sérialiser des classes Qt en utilisant le protocole Protocol Buffer. De nouvelles options QGrpcChannelOptions et QGrpcCallOptions ont été ajoutées dans Qt GRPC pour faciliter la configuration des canaux et des appels, ainsi que pour limiter le temps d'exécution maximal d'un appel ou d'un flux. Une option QGrpcMetadata a été ajoutée pour définir des métadonnées par le client et lire les métadonnées retournées. serveur. Qt GRPC intÚgre le support du type QML pour la génération automatique de classes clientes QtGRPC. Dans Qt Protobuf, l'inclusion de certains types de Qt Core et Qt GUI dans le schéma *.proto a été autorisée, ainsi que la possibilité d'accéder aux contextes QML via les classes QProtobufMessage. Le support des types google.protobuf.Any et oneof a été ajouté.
- Le module Qt WebEngine a ajouté une API pour accéder aux paramÚtres de confidentialité et de sécurité, permettant de désactiver certaines fonctionnalités du moteur de navigateur. Par exemple, à l'aide des attributs QWebEngineUrlScheme::FetchApiAllowed et QWebEngineSettings::DisableReadingFromCanvas, il est possible de désactiver l'API Fetch et le rendu des éléments Canvas pour réduire le risque d'identification passive. Le support de l'URL interne «chrome://qt» a été ajouté, affichant une page avec des informations sur la version du moteur Chromium utilisé.
- Le module Qt Sql a ajouté un plugin avec le support de la base de données Mimer SQL, et a élargi les paramÚtres de connexion dans le driver pour les bases de données MySQL et MariaDB.
- Le module Qt PDF fournit des classes pour accéder aux liens, aux vignettes de pages et aux pages sélectionnées.
- Dans Qt Quick, le type Font implémente une nouvelle API pour un contrÎle avancé de la mise en forme des glyphes (shaping) dans les polices OpenType. Il est désormais possible d'utiliser le module Qt Quick Shapes pour un rendu de haute qualité des lignes et des courbes à l'aide d'un shader fragment.

- Des travaux ont été effectués pour documenter le moteur de rendu RHI (Rendering Hardware Interface), ainsi que pour stabiliser son API bas niveau associée. Le niveau de compatibilité descendante pour RHI sera désormais aligné avec l'API Qt Platform Abstraction, ce qui permettra d'utiliser RHI directement pour le développement de code bas niveau multiplateforme fonctionnant avec tous les principaux frameworks graphiques et API graphiques (OpenGL, Vulkan, Metal et Direct 3D).
- Dans le module Qt Quick 3D, la prise en charge de la création procédurale de textures et de géométrie basées sur des maillages polygonaux à partir de QML a été ajoutée.
- Le module Qt TextToSpeech a ajouté la possibilité de générer des données PCM (Pulse-Code Modulation) pour un traitement ultérieur de la parole synthétisée (auparavant, seul le rendu direct sur un appareil audio était pris en charge). Des réglages supplémentaires pour la segmentation du texte ont été fournis, ainsi qu'une API pour rechercher les voix nécessaires et une API pour déterminer les fonctionnalités disponibles du moteur.
- Le kit de modules « Qt for Python », qui fournit des outils pour créer des applications graphiques en Python utilisant Qt, a ajouté la prise en charge des opérations asynchrones via asyncio. La compatibilité de Qt for Python avec les appareils basés sur l'architecture AArch64 a été assurée.
- La pile Boot2Qt a Ă©tĂ© mise Ă jour, pouvant ĂȘtre utilisĂ©e pour crĂ©er des systĂšmes mobiles dĂ©marritables avec un environnement basĂ© sur Qt et QML. L'environnement systĂšme dans Boot2Qt a Ă©tĂ© mis Ă jour vers la plateforme Yocto 4.2 (Mickledore). Des efforts sont en cours pour fournir des builds Boot2Qt prĂȘts Ă l'emploi pour les cartes NXP et les appareils Renesas R-Car.
- La prise en charge de la plateforme Android 13 a été ajoutée. Sur les plateformes Windows et Linux, la prise en charge de l'architecture ARM a été améliorée. En collaboration avec les mainteneurs du projet Debian, des paquets contenant Qt 6 pour Debian 11 et Debian 12 sont disponibles dans les dépÎts standards de la distribution, tandis que les composants commerciaux de Qt 6.6 pour Debian se trouvent dans les dépÎts de Qt Company.
- Les outils de dĂ©veloppement pour la plateforme WebAssembly ont Ă©tĂ© amĂ©liorĂ©s, permettant de crĂ©er des applications Qt qui fonctionnent dans un navigateur web et peuvent ĂȘtre portĂ©es entre diffĂ©rentes plateformes matĂ©rielles. Les applications compilĂ©es pour la plateforme WebAssembly, grĂące Ă la compilation JIT, s'exĂ©cutent avec des performances proches de celles du code natif, peuvent utiliser Qt Quick, Qt Quick 3D et les outils de visualisation disponibles dans Qt. La nouvelle version simplifie le dĂ©bogage des applications pour WebAssembly et amĂ©liore le support de cette plateforme grĂące Ă la prise en charge de la liaison dynamique (les applications pour WebAssembly peuvent dĂ©sormais ĂȘtre livrĂ©es avec des bibliothĂšques et des plugins Qt partagĂ©s).
Source : opennet.ru



