Qt 6.4 est disponible, elle apporte plus de fonctionnalités aux types TableView et TreeView,
et des animations plus fluides dans Qt Quick

The Qt Company a publié le 29 septembre la version 6.4 de Qt. L’équipe Qt a ajouté plus de fonctionnalités aux types TableView et TreeView de Qt Quick. Les développeurs d'applications ont plus de contrôle sur le positionnement des cellules, les animations, et l'expansion et la réduction des nœuds de l'arbre. « Aujourd'hui, nous avons publié Qt 6.4 ! La dernière version de Qt introduit le support d'une nouvelle plateforme, apporte beaucoup de nouvelles fonctionnalités - certaines en tant que technology previews (TP) - et de nombreuses améliorations sous le capot. Commençons par la plus grande nouveauté. », a déclaré Volker Hilsheimer, Chef d'équipe R&D à The Qt Company.

WebAssembly

Avec Qt 6.4, l’équipe en charge retire la prise en charge de WebAssembly de la preview technologique. Avec Qt for WebAssembly, les développeurs Qt peuvent utiliser leurs compétences existantes, et souvent le code existant, pour cibler le web. Les applications ciblant la plateforme d'assemblage Web peuvent fonctionner dans la plupart des navigateurs Web modernes et sont facilement distribuées comme tout autre contenu Web. Grâce aux performances quasi-natives et à la richesse de l'interface utilisateur et des fonctionnalités 3D de Qt Quick et Qt Quick 3D, les solutions nécessitant un traitement de données lourd et une visualisation exigeante peuvent désormais être facilement conçues pour le web.

Nom : qt.jpg
Affichages : 42468
Taille : 7,4 Ko

Cependant, WebAssembly n'est pas une plateforme comme les autres que Qt prend en charge. Les applications s'exécutent dans le bac à sable du navigateur, ce qui impose certaines limites quant à l'accès qu'elles ont à la machine locale ou aux services du système d'exploitation. De plus, elles s'exécutent dans un environnement qui nécessite une coopération avec le navigateur lui-même. Qt tente de faire abstraction des particularités des plates-formes respectives, à la fois de manière transparente dans l'intégration de la plateforme et par le biais de certaines API dédiées. Pour obtenir les meilleurs résultats, familiarisez-vous avec les exigences techniques particulières de cette plateforme. Vous pouvez d'ores et déjà vous inscrire à notre prochain webinaire sur WebAssembly.

WebAssembly lui-même continue d'être une plateforme qui évolue rapidement et qui a le potentiel pour avoir un impact énorme sur le secteur du développement d'applications. Nous nous engageons à soutenir WebAssembly, et nous améliorerons et adapterons Qt en permanence pour nous assurer que les applications Qt développées pour WebAssembly continuent à offrir une excellente expérience utilisateur aux utilisateurs finaux.

Qt 6.4 introduit de nouveaux modules en tant qu'aperçus technologiques, et fait revenir l'un des modules qui n'était pas disponible pour les utilisateurs de Qt 6 jusqu'à présent. Les interfaces utilisateur développées avec Qt Quick Controls utilisent automatiquement le support de style natif pour Windows et macOS, et pour Android en utilisant le style Material.

Nom : qtmn.jpg
Affichages : 2311
Taille : 38,1 Ko

Pour Qt 6.4, l’équipe en charge a ajouté un style natif pour les applications Qt Quick fonctionnant sur iOS. Le style iOS prend en charge les modes sombre et clair sur les plateformes iOS, et peut également être utilisé sur macOS, ce qui facilite le développement d'interfaces utilisateur optimisées pour ce style depuis le confort d'un environnement de développement macOS.

Qt HTTP Server (TP)

Avec ce nouveau module, l’équipe en charge de Qt facilite l'ajout d'un serveur HTTP à toute application Qt. Le serveur implémente un support partiel pour HTTP 1.1, et supporte la sécurité via le protocole Transport Layer Security. Cependant, il est conçu spécifiquement pour rendre les données disponibles au sein d'un réseau de confiance.

Qt Quick 3D Physics (TP)

L’équipe en charge a intégré la simulation physique dans Qt Quick 3D pour faciliter la création de scènes 3D dans lesquelles les objets bougent et interagissent naturellement. La création manuelle de telles scènes et animations peut être très laborieuse, mais avec l'API Qt Quick, il devient très facile d'ajouter de la physique à toute scène 3D. L'implémentation est basée sur le moteur PhysX, bien établi, bien testé et très performant.

Qt TextToSpeech

Les applications Qt prennent en charge par défaut les technologies d'assistance, telles que les lecteurs d'écran. Mais de nombreuses applications peuvent faire un usage supplémentaire de la synthèse vocale. Annoncer des événements ou des changements de manière audible par la parole peut rendre l'information plus facilement accessible pour n'importe quel utilisateur, surtout dans des situations où l'attention n'est pas constamment sur l'écran. L’équipe en charge a maintenant porté le support de la synthèse vocale à Qt 6, avec seulement des changements mineurs par rapport au module QtSpeech de Qt 5. Le module supporte une large gamme de synthétiseurs de synthèse vocale sur les plateformes de bureau, mobiles et embarquées, et elle a ajouté une API QML.

Nouvelle fonctionnalité

Qt Quick 3D

La prise en charge de l'éclairage global avec des cartes de lumière pré-générées permet de créer des scènes 3D plus réalistes, en utilisant différentes sources de lumière, tout en maintenant au minimum le coût des performances au moment de l'exécution. En outre, l’équipe en charge a ajouté à la boîte à outils des particules linéaires, la prise en charge des matériaux brillants spéculaires, davantage d'options de configuration pour les sondes de réflexion, les skyboxes, les matériaux personnalisés et les textures.

Qt Quick Item Views]

L’équipe Qt a ajouté plus de fonctionnalités aux types TableView et TreeView de Qt Quick. Les utilisateurs peuvent maintenant utiliser la navigation au clavier, et sélectionner des lignes et des colonnes. Les développeurs d'applications ont plus de contrôle sur le positionnement des cellules, les animations, et l'expansion et la réduction des nœuds de l'arbre.

Des animations plus fluides dans Qt Quick

En plus des améliorations qui font que la boucle de rendu threadée de Qt gère automatiquement la restriction vsync cassé, l’aquipe Qt a ajouté un nouveau type d'animation FrameAnimation qui permet d'exécuter du code en synchronisation avec les frameworks de l'animation.


QQuickWidget avec un support RHI complet

Avec QQuickWidget il est possible de construire des interfaces utilisateur d'applications où coexistent des éléments Qt Quick et Qt Widget. Jusqu'à présent, cela nécessitait l'utilisation d'OpenGL. Pour Qt 6.4, QQuickWidget est fonctionnel avec toutes les API graphiques supportées : Metal, Vulkan, Direct3D 11, en plus d'OpenGL.

Accès aux données en toute sécurité avec QSslServer

Le module réseau de Qt a facilité l'écriture de serveurs TCP efficaces. Avec Qt 6.4, il est tout aussi facile d'écrire des serveurs qui communiquent par TLS.

Qt Multimedia

Un backend multimédia basé sur FFMPEG a été ajouté, il fournit une fonctionnalité audio et vidéo cohérente sur toutes les plateformes. Pour la lecture vidéo, nous avons amélioré la gestion de l'espace couleur et le support HDR, et les applications peuvent injecter des sous-titres dans les QVideoFrames. Une nouvelle fonctionnalité de l'aperçu technologique est la prise en charge de l'audio spatial. Vous pouvez maintenant créer des scènes sonores tridimensionnelles, où Qt émule une pièce virtuelle avec des caractéristiques sonores basées sur la taille de la pièce, le matériau des murs et du sol, et la position de l'auditeur. Cette fonctionnalité est en preview technologique.

Nouvelles fonctionnalités utiles dans Qt Widgets

QFormLayout facilite la création d'interfaces utilisateur pour capturer les entrées structurées des utilisateurs, et QWizard est une solution classique pour guider les utilisateurs dans une tâche complexe au cours d'une séquence d'étapes. Pour Qt 6.4, des API permettant de contrôler la visibilité des lignes dans un formlayout et d'accéder à n'importe quelle page d'un assistant ont été ajouté. Les créateurs d'applications complexes avec de nombreux raccourcis clavier trouveront utile le petit ajout d'un bouton d'effacement optionnel à QKeySequenceEdit.

QML

Une meilleure prise en charge des types de valeurs facilite l'exposition des données structurées de C++ à QML et en réduit le coût. Les types de valeurs, et les listes de types de valeurs, peuvent être utilisés pour les propriétés sans la surcharge des wrappers QObject. Du côté des outils, les utilisateurs peuvent s’attendre à ce que le serveur de langage QML fournisse un retour d'information en temps réel dans l’IDE compatible QML. Le linter QML peut maintenant identifier l'utilisation inefficace ou incorrecte de Qt Quick et Qt Quick Controls et générer des avertissements au moment de la construction. Le compilateur de type QML est maintenant activé par défaut et peut compiler plus de QML en C++.

La longue traîne

En plus de ce qui précède, beaucoup de travail a été fait pour faciliter le travail avec les chaînes de caractères dans le code. QStringEncoder et QStringDecoder supportent maintenant tous les codecs supportés par ICU (pour autant que Qt ait été construit avec le support ICU). L'interopérabilité des classes de date et d'heure de Qt avec std::chrono est améliorée, et Markdown est maintenant supporté comme entrée et sortie lors du travail avec QTextDocuments. Les développeurs ciblant la plateforme Android trouveront plus facile d'appeler les API Android à partir de C++ en utilisant les nouvelles surcharges de modèles variadiques de diverses méthodes QJniObject et QJniEnvironment.

Si vous êtes titulaire d'une licence commerciale, il est possible de télécharger le serveur Qt VNC en tant qu'aperçu technologique. Il fonctionne au-dessus de Qt 6.4, et permet de partager n'importe quelle application Qt Quick avec un client compatible VNC. Le compilateur de scripts QML fait partie des extensions commerciales de Qt Quick Compiler. Avec Qt 6.4, il peut générer du code C++ pour les opérations sur les listes de types de valeurs, et générer un meilleur code pour les conversions de types.

Source : The Qt team

Et vous ?

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

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