Première version majeure à sortir sous l'égide du Qt Project, synonyme et symbole de l'ouverture du projet Qt au monde (et du désistement progressif de Nokia), Qt 5 est à présent disponible en beta. Cette version majeure est en cours de développement depuis plus d'une quinzaine de mois (du moins, son annonce officielle) et, sur ce temps, bien des changements architecturaux ont eu lieu (voir ci-dessus, notamment), la communauté du Qt Project n'ayant cessé de s'élargir.
Cette nouvelle version permettra de créer plus facilement et plus rapidement des applications exigeantes mais performantes (même avec des ressources limitées, le GPU sera plus utilisé ; par exemple, on peut atteindre le nirvana de 60 FPS sur le Raspberry Pi, pour bien moins que cinquante dollars), avancées en termes d'interface (avec la nouvelle version majeure de Qt Quick).
Modularisation
Une grande nouveauté de cette version est, pour rappel, la modularisation, maintenant achevée : ils seront plus indépendants les uns des autres, sans devoir faire partie du cœur de Qt, pour faciliter l'utilisation de quelques modules seulement, sans devoir compiler/télécharger le reste. Ainsi, on distingue ceux qui font partie du cœur, de Qt Essentials, et les add-ons. On ne parlera plus de Qt Mobility comme d'un produit complémentaire, mais comme une série de modules de Qt. Ainsi, KDE pourra proposer tout son framework comme add-on de Qt, au lieu de le maintenir bien séparé comme actuellement.
Ce nettoyage s'accompagne de nouvelles API dans Qt Core (support de JSON, expressions régulières compatibles Perl – une implémentation plus rapide et offrant plus de fonctionnalités que l'actuel QRegExp –, reconnaissance des types MIME, chemins standard), de la vérification des connexions des signaux et slots à la compilation, etc. Certaines de ces fonctionnalités sont directement inspirées de KDE, voire reprises.
De même, côté GUI, OpenGL fait maintenant partie de Qt GUI, avec quelques améliorations (QWindow étant une meilleure abstraction pour les fenêtres de haut niveau que QWidget).
Les widgets font maintenant partie d'un module non essentiel, il faudra en activer le support manuellement, mais les API basées sur des widgets continueront d'exister. Elles sont d'ailleurs implémentées par-dessus les fonctionnalités proposées par Qt GUI, tout comme Qt Quick.
Le plug-in Visual Studio est mis à jour pour supporter ces fonctionnalités (bien que toujours en beta), en adaptant l'existant ; cependant, cette nouvelle version ne supporte plus Qt 4, du moins pour le moment.
Performances et interfaces graphiques
Qt 5 a pris à bras le corps deux problèmes pour la conception d'interfaces graphiques à hautes performances : les outils pour concevoir ces interfaces et les performances de leur rendu.
D'un côté, de nouvelles API et extensions ont été ajoutées à Qt Quick pour faciliter la création d'applications riches et fluides pour des périphériques orientés vers les entrées tactiles (tout en gardant le support des entrées clavier). Le module de support de WebKit supporte également de base des interactions tactiles.
Pour les performances, c'est toute une nouvelle pile graphique qui est disponible, entièrement basée sur OpenGL, facilitant l'intégration de contenu OpenGL (shaders et particules, par exemple). Le rendu du texte est aussi entièrement accéléré matériellement (meilleures performances, consommation moindre), d'où les bonnes performances même sur du matériel bon marché (bien qu'il faudrait voir ce sur quoi portaient les tests).
Compatibilité des sources
Évidemment, si tout ceci s'effectue comme lors de la transition de Qt 3 vers Qt 4, les développeurs se montreront réticents ; cependant, un des objectifs a été de faciliter la transition tant du code que des compétences de Qt 4 à Qt 5, en gardant la compatibilité des sources autant que possible (Qt Creator, actuellement, peut être compilé tant avec Qt 4 que Qt 5, sans changement dans le code).
Le principal est de changer les fichiers de projet, pour prendre en compte la modularisation du framework. Un script est d'ailleurs fourni à cette fin. Cependant, tout le code s'intégrant directement avec le système de fenêtrage natif devra être adapté.
Sources : http://labs.qt.nokia.com/2012/08/30/...-beta-is-here/, http://195.197.180.217/en/Blogs/Qt-b...been-Released/
Sortie de Qt 5 beta
Cette préversion montre l'achèvement de la modularisation du framework
Sortie de Qt 5 beta
Cette préversion montre l'achèvement de la modularisation du framework
Le , par dourouc05
Une erreur dans cette actualité ? Signalez-nous-la !