La société Qt Company a publié la version du framework Qt 6.9, poursuivant le travail de stabilisation et d'extension des fonctionnalités de la branche Qt 6. Qt 6.9 fournit un support pour les plateformes Windows 10+, macOS 12+, Linux (Ubuntu 22.04/24.04, openSUSE 15.5, SUSE 15 SP5, RHEL 8.10/9.4, Debian 11.6), iOS 16+, Android 9+(API 23+), webOS, WebAssembly, INTEGRITY, VxWorks, FreeRTOS et QNX. Les sources des composants Qt sont fournies sous les licences LGPLv3 et GPLv2. Qt 6.9 a obtenu le statut de version intermédiaire, dont le support public sera assuré pendant 6 mois (+ encore 6 mois pour les utilisateurs commerciaux).
Principales modifications dans Qt 6.9 :
- Le développement du module Qt Graphs, destiné à la création de graphiques 2D et 3D, ainsi qu'à la visualisation de grandes collections de données en évolution rapide, a été poursuivi. Le module utilise Qt Quick 3D et le moteur de rendu RHI (Rendering Hardware Interface), prenant en charge diverses API 3D (OpenGL, Vulkan, Metal et Direct 3D). La nouvelle version ajoute la prise en charge de la transparence dans le type QML Surface3D, implémente la classe QSpline3DSeries pour dessiner des données sous forme de splines 3D, et ajoute des fonctionnalités supplémentaires pour personnaliser l'apparence des diagrammes, des axes et des étiquettes. Il est maintenant possible d'incorporer des graphiques dans des applications basées sur Qt Quick 3D, en utilisant la propriété « importScene » dans les scènes basées sur View3D. La configuration des paramètres d'entrée dans les diagrammes 2D a été simplifiée. Dans QGraphsView, le positionnement précis de la zone rectangulaire (plotArea) pour afficher le graphique est désormais pris en charge.

- La possibilité de reconnaître des codes emoji dans le texte et d'utiliser des polices de couleur appropriées pour leur affichage a été mise en œuvre. Une nouvelle API a été ajoutée à QFontDatabase pour sélectionner la famille de polices pour les emojis. Actuellement, les polices au format CBDT et COLRv1 sont prises en charge. Si nécessaire, l'analyse des emojis peut être désactivée.


- Une API a été ajoutée pour créer des interfaces où les éléments d'interface se mélangent avec le contenu et ne distraient pas l'utilisateur (le contenu occupe tout l'espace de la fenêtre, sans mise en avant d'un en-tête). Pour étendre la zone de l'interface de l'application sur toute la fenêtre, le drapeau Qt.ExpandedClientAreaHint a été ajouté, et pour mettre en surbrillance les zones avec des éléments de service tels que l'en-tête, le pied de page et le menu, qui ne doivent pas se chevaucher avec les éléments internes de l'interface de l'application, la propriété « SafeArea » a été mise en œuvre dans Qt Quick.

- Le module Qt SVG a ajouté un support initial de l'animation CSS, qui est actuellement appliqué uniquement aux propriétés « color », « fill », « stroke » et « transform ».
- Des efforts ont été réalisés pour améliorer la performance.
- Sur les systèmes avec des CPU hybrides, équipés de cœurs séparés, haute performance et à faible consommation d'énergie, QThread a ajouté la possibilité de transmettre des indications au planificateur sur le type de cœurs CPU sur lequel le thread spécifié doit s'exécuter.
- Pour les applications utilisant QQuickPaintedItem avec OpenGL, le mode de rendu FramebufferObject, permettant l'accélération matérielle, est désormais autorisé.
- Dans le backend RHI (Rendering Hardware Interface) pour OpenGL ES, une extension a été activée pour le rendu multi-échantillonné, permettant d'améliorer la performance de Qt Quick et Qt Quick 3D sur les GPU modernes.
- Un thread distinct a été ajouté au backend RHI pour Direct 3D pour suivre l'achèvement du rafraîchissement vertical (vblank), ce qui a permis de réduire les délais dans les interfaces interactives.
- Dans tous les backends RHI, à l'exception d'OpenGL, le mécanisme de Variable Rate Shading (VRS) a été ajouté, permettant d'assurer le rendu en tenant compte de la direction du regard de l'utilisateur dans les applications de réalité virtuelle basées sur Quick 3D XR.
- Un nouvel élément RectangularShadow a été proposé dans Qt Quick, permettant de réduire la charge sur le CPU lors de l'utilisation d'effets d'ombre et de lumière dans l'interface.
- Dans la classe QHeaderView, la consommation de mémoire a été considérablement réduite lors de la désactivation du redimensionnement et du regroupement des sections.
- Dans Quick 3D, une technique de « Weighted Blended » a été implémentée, permettant de rendre des objets transparents sans effectuer d'opérations de tri de profondeur distinctes. La technique mise en œuvre évite l'apparition d'artefacts dus à un tri incorrect, qui se produisent lorsque des objets se chevauchent. En termes de charge processeur et de consommation mémoire, la nouvelle méthode est identique à l'ancienne.

- Un module Qt Network Authorization a été ajouté, fournissant une API pour l'authentification à l'aide des protocoles OAuth1 et OAuth2, qui peuvent être utilisés pour accéder aux services en ligne sans divulguer le mot de passe de l'utilisateur.
- Des travaux ont été effectués pour renforcer la sécurité du module Qt HTTP Server. Dans QHttpServerConfiguration, une fonctionnalité a été ajoutée pour limiter le nombre maximal de requêtes entrantes. Dans QHttp2Configuration, pour les clients HTTP/2, la prise en charge de la configuration du nombre maximal de flux créés simultanément a été ajoutée.
- Dans le serveur de langage QML, implémentation de serveurs LSP (Language Server Protocol) pour QML, fournit des informations sur la structure QML, permettant d'afficher une représentation hiérarchique de la structure QML dans les éditeurs de code et les environnements de développement intégrés.
- Un nouveau composant ContextMenu a été ajouté à Qt Quick, facilitant la liaison des menus contextuels aux éléments ouverts lors d'événements spécifiques à la plateforme, tels que le clic droit. Des menus contextuels par défaut ont été ajoutés pour les composants TextField et TextArea.
Source : opennet.ru





