Qt 6.3 est disponible avec une prise en charge améliorée de Wayland
et ajoute le module Qt Language Server

The Qt Company a publié Qt 6.3 mardi comme une grande mise à jour de printemps de Qt 6, à la suite de Qt 6.2 LTS (long-term support) publiée à la fin de l'année dernière. Qt 6.3 comprend un nouveau module "Qt Language Server", quelques nouvelles fonctions dans le module Qt Core, Qt Quick a ajouté un MessageDialog qui fournira une boîte de dialogue native sur les plateformes prises en charge, "qmltc" comme nouveau compilateur de type QML, le module module Qt Wayland Compositor ajoute un Qt Shell qui prend en charge toutes les fonctionnalités du système de fenêtrage géré par Qt, etc.

Qt Quick Compilers

Selon l'équipe, les nouveaux compilateurs rapides de Qt (Qt Quick Compilers) sont l'une des grandes nouveautés qu'elle introduit avec Qt 6.3. C'est un sujet sur lequel elle travaillerait depuis un certain temps déjà. De nombreuses modifications apportées à QML pour Qt 6 ont jeté les bases de ces nouveaux compilateurs. Les nouveaux compilateurs QML se composent de deux outils : le compilateur de type QML (qmltc) et le compilateur de script QML (qmlsc).

Nom : &.png
Affichages : 97895
Taille : 51,5 Ko

Le premier compile les types QML en C++, ce qui accélère considérablement l'instanciation des types QML. Le second compile les fonctions et les liaisons en C++ lorsque cela s'avère utile, ce qui améliore considérablement les performances lors de l'évaluation des fonctions et des liaisons en QML. Le compilateur qmlsc vise à compiler les fonctions et les liaisons de QML en code C++ chaque fois que cela est possible. Il y a également un nouveau QML Lint pour repérer le code qui pourrait ne pas se traduire correctement avec les nouveaux compilateurs.

Selon l'équipe, comme QML est un langage dynamiquement typé, cela n'a pas de sens si vous ne pouvez pas déterminer tous les types au moment de la compilation. Dans ce cas, le compilateur se rabat sur la compilation des méthodes en bytecode, comme l'ancien qmlcachegen. En utilisant ces compilateurs, vous pouvez obtenir des améliorations significatives des performances pour les liaisons et les fonctions qui peuvent être compilées en code natif. L'équipe s'attend à ce que ces nouveaux compilateurs QML permettent d'accélérer jusqu'à 30 % les temps de démarrage et d'exécution.

Qt Wayland Compositor

Dans Qt 6.3, le module Qt Wayland Compositor ajoute un Qt Shell qui prend en charge toutes les fonctionnalités du système de fenêtrage géré par Qt, ce qui signifie que Qt Wayland peut maintenant prendre en charge la création d'extensions Shell personnalisées. Voici les améliorations apportées au module :

  • ajout d'une API pour créer des extensions Shell personnalisées ;
  • ajout d'un Qt Shell qui supporte toutes les fonctionnalités du système de fenêtrage disponibles dans Qt ;
  • ajout du support pour le protocole presentation-time ;
  • ajout de la prise en charge de plusieurs protocoles de méthode d'entrée dans le même serveur, afin de prendre en charge les clients de différentes sources.


Qt Quick et Qt Quick Controls

Dans Qt 6.3, l'équipe a également ajouté quelques nouveaux contrôles rapides Qt. Deux d'entre eux étaient déjà disponibles en tant que composants autonomes sur le marché. L'équipe a choisi de les intégrer à l'ensemble de contrôles standard pour les rendre disponibles à tous les utilisateurs. Selon elle, TreeView et Calendar sont deux fonctionnalités fréquemment demandées et devraient rendre plus attrayante la création d'applications de bureau à l'aide de Qt Quick.

Nom : 1.png
Affichages : 2193
Taille : 142,8 Ko

En outre, elle a ajouté deux nouvelles boîtes de dialogue : FolderDialog et MessageDialog. Ces deux boîtes de dialogue utiliseront les boîtes de dialogue du système lorsqu'elles sont disponibles (sur les plateformes de bureau et mobiles). Sur les autres plateformes, Qt fournit ces boîtes de dialogue avec un thème dépendant de la plateforme. Enfin, elle travaille à améliorer la performance des composants texte (Text, TextEdit, TextArea, TextInput) dans Qt Quick.

Nom : 2.png
Affichages : 2174
Taille : 58,1 Ko

Auparavant, le passage d'un très gros document aux contrôles de texte pouvait utiliser une quantité assez importante de mémoire et conduire à des performances de dessin lentes. Ce problème a été corrigé dans Qt 6.3, mais en s'assurant que le back-end ne rende jamais que la partie du texte qui est actuellement visible à l'écran.

Qt Quick 3D

Qt Quick 3D a également bénéficié de quelques nouvelles fonctionnalités. La plus notable est probablement le nouveau support des réflexions. Les réflexions sont mises en œuvre à l'aide de l'élément QML ReflectionProbe. La sonde est positionnée dans la scène, où elle capture l'environnement et l'enregistre dans une carte cubique. Cette carte peut ensuite être utilisée par d'autres éléments pour afficher les réflexions.

Nom : 3.png
Affichages : 2140
Taille : 435,9 Ko

Le système de particules s'est également enrichi de quelques nouvelles fonctionnalités. Le nouvel élément ResourceLoader vous donne plus de contrôle sur la gestion des ressources dans Qt Quick 3D et vous permet de précharger des ressources importantes telles que des maillages ou des textures et permet d'éviter qu'elles soient déchargées si elles ne sont pas actuellement visibles dans la scène.

Qt PDF

Avec Qt PDF, Qt 6.3 ajoute un autre module qui manquait depuis que le passage à Qt 6. Il est disponible en tant qu'aperçu technologique dans la version 6.3. Il couvre les mêmes fonctionnalités que Qt PDF dans la version 5.15, et l'équipe prévoit quelques nouvelles fonctionnalités pour le module dans la version 6.4. Pour rappel, le module Qt PDF contient des classes et des fonctions pour le rendu de documents PDF.

Nom : 4.png
Affichages : 2160
Taille : 97,8 Ko

La classe QPdfDocument charge un document PDF et en rend les pages selon les options fournies par la classe QPdfDocumentRenderOptions. La classe QPdfPageRenderer gère une file d'attente qui recueille toutes les demandes de rendu. La classe QPdfPageNavigation gère la navigation dans un document PDF.

Qt Language Server

Le nouveau module Qt Language Server introduit avec Qt 6.3 implémente la spécification Language Server Protocol (LSP) et le protocole JsonRpc 2.0 pour permettre une meilleure intégration avec les éditeurs de code source/ EDI. Rappelons que JsonRpc est un protocole léger d'appel de procédure à distance (RPC) et sans état.

Autres changements et améliorations

L'équipe a apporté un grand nombre d'améliorations mineures dans Qt Core. Une grande partie d'entre elles consiste à ajouter de la commodité aux classes de chaînes de caractères. Les autres fonctionnalités sont le support des balises linguistiques ISO639-2 dans QLocale, les spécificateurs AM/PM lors de la conversion des heures en chaînes dans QDate, QTime et QLocale, une conversion plus facile entre JSON et CBOR, les méthodes QtFuture::whenAll() et whenAny() et beaucoup d'autres petites améliorations.

Qt Network peut maintenant être interrogé sur le support de transport utilisé et si le transport est mesuré. Qt Positioning permet maintenant d'interroger la précision de la position obtenue sur Android et iOS. Qt Bluetooth expose maintenant les données du service BTLE en tant que partie de l'information du dispositif et rapporte correctement l'état de l'adaptateur sous Windows. L'équipe a également travaillé sur de nombreuses améliorations pour Qt Widgets, avec un accent sur les affichages haute résolution, les styles, le style avec les feuilles de style et les itemviews.

Du côté du système de construction, il y a un certain nombre d'améliorations au support CMake dans Qt 6.3. La plus notable est la nouvelle fonction qt-generate-deploy-app-script(), qui simplifie grandement la génération d'un script de déploiement pour l'application sur différentes plateformes. Les autres améliorations sont des ajouts pour gérer les compilateurs de type et de script QML, la prise en charge des constructions multi-ABI sur Android et la génération d'un écran de lancement par défaut sur iOS.

Source : Qt 6.3

Et vous ?

Que pensez-vous des nouveautés et changements introduits par Qt 6.3 ?

Voir aussi

La première version commerciale du correctif Qt 5.15.3 LTS est prévue pour février 2021, les versions LTS de Qt ne seront plus open source

Le nouveau framework de Qt, le framework qui fait fonctionner le bureau KDE, permet aux développeurs d'intégrer des publicités dans leurs applications, grâce à Qt Digital Advertising

Qt 6 est disponible. Cette version est compatible C++ 17, apporte une nouvelle architecture graphique et s'accompagne du module Qt Quick 3D pour la création de scènes 3D complexes

Sortie de Qt 5.15 LTS, la dernière version avant Qt 6 propose déjà Qt Quick 3D ou encore l'abstraction de l'API de rendu Qt RHI

Qt Design Studio annonce une nouvelle ère dans le développement d'interfaces Qt en rassemblant concepteurs et développeurs dans un même outil