+ Répondre à la discussion Actualité déjà publiée

Discussion: Sortie de Qt 5.8

  1. #1
    Responsable Qt


    Avatar de dourouc05
    Homme Profil pro
    Doctorant
    Inscrit en
    août 2008
    Messages
    22 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 22 087
    Points : 117 792
    Points
    117 792

    Par défaut Sortie de Qt 5.8

    Qt 5.8 s'annonce déjà, avec bon nombre de nouveautés pour Qt Quick,
    comme un graphe de scène avec rendu purement logiciel

    Le développement de fonctionnalités pour Qt 5.8 est à peu près terminé : il devait être achevé pour ce lundi 15 août (à cause de problèmes de test des changements dans le code source existant, la date a été repoussée au 22 août, en évitant tout ce qui n’est pas correction de défaut). Ainsi, il est d’ores et déjà possible de dresser le portrait (incomplet) de cette version à venir.

    Le plus gros changement concerne Qt Quick : le graphe de scène OpenGL a été refactorisé pour éliminer la dépendance envers OpenGL. L’objectif est de passer facilement à d’autres API pour l’affichage, comme Vulkan ou DirectX 12 : d’ailleurs, cette version 5.8 pourra utiliser directement Direct3D 12 sous Windows (même si le code est expérimental). Il reste cependant à voir à quel point l’implémentation d’autres API pourra les exploiter à leur plein potentiel et ainsi donner des avantages par rapport à l’implémentation OpenGL existante. À l’origine, ce changement était nécessaire pour intégrer le code du module Qt Quick 2D Rendere (autrefois exclusivement propriétaire).

    Toujours niveau Qt Quick, des caches ont fait leur apparition pour diminuer les temps de chargement et la consommation de mémoire des applications : le code compilé et les structures de données sous-jacentes aux fichiers QML et JS. Le module Qt Quick Controls 2 propose de nouveaux types (Dialog, DialogButtonBox, ButtonSeparator et MenuSeparator), ainsi que de nouveaux effets pour les styles Material et Universal et un thème System. D’autres types pour mieux s’intégrer avec le système font leur apparition, en étant toutefois expérimentaux : MenuBar, Menu, SystemTrayIcon, ColorDialog, FontDialog, MessageDialog, FileDialog et FolderDialog.

    Côté sécurité sur les réseaux, les protocoles TLS PSK (qui se basent sur un échange au préalable de clés symétriques partagées) ont été implémentés dans le module Qt Network (côté serveur) et dans Qt Web Sockets (tant pour le client que le serveur). De même, HTTP 2 est maintenant implémenté.

    Dans les derniers arrivés, Qt 3D se focalise sur la maturation (correction de défauts, amélioration de la performance, augmentation de la suite de tests). Qt Charts propose aussi une fonctionnalité de graphiques en chandeliers japonais, principalement utiles dans la finance. Comme prévu, trois nouveaux modules font leur apparition (Qt Wayland Compositor, Qt SCXML et Qt Serial Bus), Qt Gamepad n’est toujours pas finalisé.

    Sources : New Features in Qt 5.8, [Development] [Releasing] HEADS-UP: Branching from ‘dev’ to ‘5.8’ ongoing, Qt 5.8 Feature Freeze coming…, [Development] HEADS-UP: Branching from ‘dev’ to ‘5.8’ ongoing, Qt 5.8 Feature Freeze coming….
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions) ? Contactez-moi par MP.

    Nouveau ! Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  2. #2
    Responsable Qt


    Avatar de dourouc05
    Homme Profil pro
    Doctorant
    Inscrit en
    août 2008
    Messages
    22 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 22 087
    Points : 117 792
    Points
    117 792

    Par défaut Sortie de Qt 5.8 Alpha

    Qt 5.8 Alpha est maintenant sorti. Cette version mineure apporte pas mal de nouveautés, mais les principales se situent sous le capot et n’auront pas vraiment d’impact pour le programmeur.

    Celle qui a fait couler probablement le plus d’encre est une refactorisation à grande échelle du moteur de rendu de Qt Quick : la dépendance envers OpenGL a été fortement limitée, l’architecture globale du rendu est maintenant totalement agnostique en ce qui concerne l’API utilisée. Ces changements ont permis l’intégration du moteur de rendu purement logiciel qui était fourni avec les éditions commerciales de Qt, mais aussi la création d’une extension (expérimentale) qui utilise DirectX 12 pour le rendu. Rien n’est actuellement prévu pour Vulkan, les développeurs estimant que les gains en performance ne justifieront pas ce développement.

    Le moteur d’exécution QML (le langage prévu pour Qt Quick) a également été fortement amélioré, en ce qu’il met maintenant en cache une forme binaire précompilée des fichiers QML chargés. Ainsi, le démarrage des applications QML est bien plus rapide que précédemment (sans chercher à se passer de QML et d’écrire ses applications Qt Quick uniquement en C++). Ces changements n’impliquent pas la possibilité de précompiler une application Qt Quick (qui reste l’apanage de l’édition commerciale).

    Dans le monde de l’embarqué, l’espace est une denrée rare, tant pour le stockage qu’en mémoire vive… et Qt en occupe vite une belle quantité. Dans le cadre du projet Qt Lite, l’infrastructure de configuration de Qt a été retravaillée pour sélectionner les fonctionnalités nécessaires à l’intérieur de chaque module. Le travail est toujours en cours, mais continuera d’ici à la préversion Beta. Jusqu’à présent, il est possible de diminuer la taille d’une application Qt Quick (liée statiquement à Qt) de septante pour cent par rapport à Qt 5.6 — ce qui est un gain appréciable.

    Certains modules quittent le statut de préversion technologique et sont maintenant pleinement supporté par le Qt Project (notamment, les évolutions de leur API ne pourront pas casser la compatibilité avec les prochaines versions de Qt 5). Ainsi, Qt Wayland Compositor, Qt SCXML et Qt Serial Bus sont ouverts au plus grand nombre, sans arrière-pensée. De nouveaux modules font aussi leur apparition comme préversions technologiques : Qt Speech pour la reconnaissance et la synthèse vocales, Qt Network Authentication pour l’authentification (notamment avec le protocole OAuth, versions 1 et 2).

    Qt 5.8 Beta devrait arriver dans un mois, début octobre, avant une version finale fin novembre. Si tout se passe bien, évidemment.

    Télécharger Qt 5.8 Alpha.
    Source : Qt 5.8 Alpha released.

    Et vous ?

    Que pensez-vous de cette nouvelle version de Qt ?

    Voir aussi

    le forum Qt
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions) ? Contactez-moi par MP.

    Nouveau ! Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Responsable Qt


    Avatar de dourouc05
    Homme Profil pro
    Doctorant
    Inscrit en
    août 2008
    Messages
    22 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 22 087
    Points : 117 792
    Points
    117 792

    Par défaut

    Un mois après la préversion Alpha, Qt 5.8 gagne en maturité avec sa première Beta. Les principales nouveautés par rapport à Qt 5.7 sont un nouveau système de configuration (laissant plus de flexibilité quant aux fonctionnalités à inclure — ce qui est plus fin que les modules —, chose très appréciée dans l’embarqué, où les ressources sont rares), un moteur de rendu logiciel pour Qt Quick (précédemment payant), un cache QML pour accélérer le chargement des applications (qui n’était pas présent pour la préversion Alpha) et d’autres choses encore.

    Télécharger Qt 5.8 Beta.
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions) ? Contactez-moi par MP.

    Nouveau ! Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  4. #4
    Responsable Qt


    Avatar de dourouc05
    Homme Profil pro
    Doctorant
    Inscrit en
    août 2008
    Messages
    22 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 22 087
    Points : 117 792
    Points
    117 792

    Par défaut

    Le développement de Qt 5.8 continue son petit bonhomme de chemin : deux mois après la Beta, voici la RC, qui corrige bon nombre de défauts par rapport à la Beta. La version finale est prévue pour janvier 2017.

    Télécharger Qt 5.8 RC.


    Source : Qt 5.8.0 Release Candidate Available.
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions) ? Contactez-moi par MP.

    Nouveau ! Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  5. #5
    Responsable Qt


    Avatar de dourouc05
    Homme Profil pro
    Doctorant
    Inscrit en
    août 2008
    Messages
    22 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 22 087
    Points : 117 792
    Points
    117 792

    Par défaut

    Avec quelque retard, la version 5.8 de Qt est sortie. Elle est relativement riche en fonctionnalités : un système de configuration de la compilation nettement plus précis, une API pour aider à la création de compositeurs Wayland, de grands changements du côté de la communication et des réseaux, Qt Quick a vu la plus grande refactorisation de son code de rendu depuis 2012.



    Qt Lite ou le renouveau du système de configuration

    Peu d’utilisateurs en profiteront, mais ceux-là verront leur vie largement simplifiée. Le système de configuration de Qt est utilisé lorsque l’on compile Qt depuis les sources. Il permet de définir bon nombre d’options, pour choisir les modules à compiler, les bibliothèques à intégrer, etc., mais a subi une évolution chaotique : ce script a été écrit il y a une quinzaine d’années, pour Qt 3, et n’a depuis lors pas subi de refonte majeure, chaque version ajoutant sa petite couche. Le résultat était un script pas toujours cohérent entre les différentes plateformes, pas très modulaire (alors que c’était le thème principal de Qt 5).

    Cette nouvelle mouture, au contraire, est unifiée entre les différentes plateformes (les incohérences ont été éliminées), tout en laissant bien plus de flexibilité à l’utilisateur pour les parties à compiler : la version précédente permettait de choisir des modules (et quelques fonctionnalités), celle-ci descend plus bas et permet de désactiver des parties de modules, mais aussi des fonctionnalités précises (l’analyse de contenu HTML ou CSS, souvent utilisée dans les interfaces pour du texte formaté, par exemple).

    Sur les plateformes embarquées (téléphone, machine à café, système d’infodivertissement d’une voiture, etc.), cela permet de gagner beaucoup de place, en stockage et en mémoire vive — jusqu’à soixante pour cent en stockage pour une application Qt Quick simple par rapport à Qt 5.6, qui nécessite pourtant une bonne partie de Qt.

    Refactorisations pour Qt Quick


    Le monde Qt Quick voit de grands changements : avec Qt 5, l’affichage s’est orienté autour d’un graphe de scène et d’OpenGL ; avec Qt 5.8, le graphe de scène reste, mais il s’abstrait de l’API utilisée pour le rendu. Ainsi, une implémentation expérimentale du moteur de rendu utilisant Direct3D 12 est fournie ; cela laisse la porte ouverte à une implémentation Vulkan. Un moteur de rendu purement logiciel est aussi disponible (sans utiliser OpenGL).

    Par défaut, le moteur d’exécution Qt Quick met en cache des représentations binaires des fichiers QML et JavaScript, ce qui diminue énormément le temps de chargement — une fois que l’application a déjà été lancée. L’édition commerciale de Qt propose un compilateur Qt Quick, qui effectue ces opérations de traduction en format binaire en amont, élimine les coûts supplémentaires du premier lancement ; les plans actuels sont de l’intégrer dans l’édition libre de Qt dans les versions à venir, en profitant de cette infrastructure de caches.

    À un niveau plus mineur, le graphe de scène peut maintenant détecter quand une partie de la scène n’a pas été touchée et ne doit donc pas être redessinée, ce qui améliore franchement la performance, surtout dans le cas du moteur de rendu logiciel.

    Les Qt Quick Controls 2 disposent de quelques contrôles supplémentaires, comme des boîtes de dialogue, des boutons arrondis et des séparateurs pour les barres d’outils. Les styles Material et Universal proposent maintenant un thème qui copie l’apparence du système d’exploitation et facilite l’intégration des interfaces.

    Compositeur Wayland

    Qt Wayland Compositor arrive en version finale (avec Qt 5.7, il était considéré comme une préversion technologique) ; ce module aide à créer des compositeurs pour Wayland. À nouveau, cette fonctionnalité est orientée principalement vers les plateformes embarquées : le module sert notamment à créer des écrans de démarrage et des gestionnaires d’applications quand le système d’exploitation n’en fournit pas. Notamment, dans les systèmes d’infodivertissement d’une voiture, il permet de créer l’environnement nécessaire au bon fonctionnement des applications — sans devoir lancer un serveur X et écrire son propre gestionnaire de fenêtres, puisque Wayland peut s’en occuper.


    Dans le détail, ce module gère sans problème plusieurs écrans et propose une API tant en C++ qu’en QML. Chaque application est lancée dans son processus propre, ce qui favorise les bonnes pratiques de développement (le système complet n’est pas monolithique, avec une sécurité améliorée) et la réactivité (une application ne bloque pas le système).



    Réseaux

    Qt SerialBus est utilisé pour la communication sur des bus série, comme CAN et Modbus (très courants dans l’embarqué), même si son API est générique et ne se limite pas à ces deux protocoles. Ce module est maintenant en version finale.

    Pour la sécurité, tant Qt Network que Qt Web Sockets implémentent les algorithmes cryptographiques de TLS PSK. La classe QNetworkAccessManager accepte des paramètres pour l’échange de clés selon le protocole de Diffie-Hellman, ainsi que HTTP 2.

    Qt Network Authorization fait son apparition en tant que module en préversion technologique. Il implémente les protocoles OAuth 1 et 2.

    Qt WebEngine a été mis à jour pour utiliser Chromium 53. Il est désormais possible d’imprimer des pages Web, ainsi que de personnaliser certaines boîtes de dialogues, infobulles et menus contextuels en QML.

    Divers

    Bon nombre de changements plus épars ont eu lieu avec cette nouvelle version. Au niveau des plateformes, Qt peut être utilisé avec tvOS et watchOS, respectivement pour l’Apple TV et l’Apple Watch. Cependant, les fonctionnalités graphiques ne fonctionnent pas encore sur watchOS.

    Qt Speech est un nouveau module en préversion technologique. Son objectif à terme est d’intégrer les API système pour la reconnaissance et la synthèse vocales. Cette première version se focalise sur la synthèse, c’est-à-dire faire lire un texte à voix haute par l’ordinateur.

    Qt 3D n’est toujours pas arrivé à maturité : peu de changements en fonctionnalité, mais de nombreux défauts ont été corrigés, la performance a été améliorée.

    Qt Charts propose un nouveau type de graphique, les chandeliers japonais.

    Sources : Qt 5.8 released, Creating devices with multiple UI processes using Wayland.
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions) ? Contactez-moi par MP.

    Nouveau ! Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  6. #6
    Expert éminent

    Profil pro
    Inscrit en
    juin 2003
    Messages
    5 584
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : juin 2003
    Messages : 5 584
    Points : 8 456
    Points
    8 456
    Billets dans le blog
    3

    Par défaut

    Citation Envoyé par dourouc05 Voir le message
    Peu d’utilisateurs en profiteront, mais ceux-là verront leur vie largement simplifiée. Le système de configuration de Qt est utilisé lorsque l’on compile Qt depuis les sources. Il permet de définir bon nombre d’options, pour choisir les modules à compiler, les bibliothèques à intégrer, etc., mais a subi une évolution chaotique
    C'est destiné à être utilisé par les développeurs embarqués en particulier. Qt Lite (non dispo en GPL, uniquement en commercial) fournit un configurateur graphique qui permet à coups de clics de choisir les modules que l'on veut, et il ne s'agit pas juste de QtCore, Widgets ou Network, mais de 150 fonctionnalités, donc un granularité beaucoup plus fine au niveau du code compilé. Et c'est ce qui permet de réduire la taille finale des binaires par 5. Pour cela ils ont enrichi qmake pour supporter un système maison de définitions de modules en json. Cela a été l'occasion de remettre à plat la configuration de Qt qui se faisait via des scripts sous Unix et un exécutable dédié (configure.exe) sous Windows, donc double maintenance. Du coup je me demande si Qbs a un avenir (déjà qu'il a du mal à percer)...

    Avec cette nouvelle version, Qt cible clairement l'embarqué (IoT) en supportant officiellement comme hardware minimal un ARMv7 300MHz avec 16 / 32 Mo de ROM / RAM. Et surtout, plus besoin de GPU (OpenGL) pour faire tourner QML. Et ils pensent pouvoir réduire encore les besoins dans le futur. C'est une très bonne nouvelle ! Par contre faut payer

  7. #7
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur Full Stack amateur
    Inscrit en
    janvier 2007
    Messages
    2 428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Full Stack amateur
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 2 428
    Points : 6 755
    Points
    6 755
    Billets dans le blog
    15

    Par défaut



    Merci Aurelien pour cette précision que, sauf erreur de ma part, je n'ai vu nul part... Je pouvais toujours le chercher ce Qt Lite
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça


    Vous souhaitez faire vivre la rubrique PyQt de Developpez.com. Contactez moi par MP et rejoignez l'équipe.

  8. #8
    Expert éminent

    Profil pro
    Inscrit en
    juin 2003
    Messages
    5 584
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : juin 2003
    Messages : 5 584
    Points : 8 456
    Points
    8 456
    Billets dans le blog
    3

    Par défaut

    Ah oui j'ai oublié de préciser que j'ai eu ces infos dans un webinar dédié au sujet. Il y a d'ailleurs une nouvelle session le 2 février:
    https://www.qt.io/event/encore-qt-lite-overview/


Discussions similaires

  1. Réponses: 16
    Dernier message: 18/07/2003, 17h16
  2. Comment rediriger la sortie vers /dev/null
    Par dclink dans le forum C
    Réponses: 4
    Dernier message: 24/06/2003, 18h23
  3. [LG]Entrées et sorties redirigée
    Par Lady dans le forum Langage
    Réponses: 17
    Dernier message: 10/05/2003, 18h33
  4. Rediriger le plux de sortie
    Par Groove dans le forum C
    Réponses: 5
    Dernier message: 17/04/2003, 17h16
  5. récupérer la valeur de sortie d'un thread
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2002, 11h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo