Le processus de peaufinage de Qt 5.4 est entamé avec la sortie de la première préversion, Qt 5.4 Alpha. Aucune nouvelle fonctionnalité ne devrait arriver d’ici à la version finale, juste des corrections de défauts. Cette version apporte son lot de nouveautés, avec un grand nombre de fonctionnalités mais également la finalisation du port vers Windows RT.
Plateformes mobiles
Après moult tests, la préversion du port pour Windows RT arrivée avec Qt 5.2, fin 2013, est devenue mature. Pour Windows Phone, seule la version 8.1 sera supportée : cette décision a été prise pour éliminer la dépendance envers le compilateur D3D, ce qui facilite le déploiement. La plupart des modules sont maintenant disponibles, il devient donc très facile de porter une application Qt vers Windows Phone, les tablettes sous Windows RT mais également vers l’interface moderne de Windows 8 – y compris la mise à disposition sur le Windows Store.
Sur Android, les applications Qt Quick auront un style natif par défaut – précédemment, il était nécessaire d’utiliser Ministro (une installation globale de Qt pour Android, au lieu de fournir le cadriciel sous forme de bibliothèques pour chaque application).
Également, le module Qt Bluetooth pourra utiliser Bluez5, une implémentation de la pile de protocoles Bluetooth pour Linux. Également, ce module dispose d’une préversion du standard Bluetooth Low Energy (aussi dit LE ou Smart), qui devrait diminuer considérablement la consommation d’énergie lors de communications Bluetooth.
Amélioration de la gestion d’OpenGL
Qt 5.3 apportait QQuickWidget, une classe facilitant l’introduction de contenu Qt Quick dans une application traditionnelle, par là facilitant l’adoption des interfaces déclaratives en QML. Qt 5.4 amène QOpenGLWidget, qui ambitionne de faire la même chose avec le contenu OpenGL, en remplacement de la vieillissante classe QGLWidget. Par conséquent, le module Qt OpenGL est déprécié : toutes ses fonctionnalités sont reprises à d’autres endroits.
Une nouvelle API fait d’ailleurs son apparition, QQuickRenderControl, grâce à laquelle le rendu de scènes Qt Quick 2 dans des tampons OpenGL sera plus efficace. Ces images pourront alors être utilisées ailleurs, dans du code utilisant Qt ou totalement dissocié. QOpenGLContext fait le lien avec des contextes OpenGL, ce qui facilite l’utilisation du contenu Qt dans d’autres moteurs de rendu.
Sous Windows, il est désormais possible de choisir d’utiliser directement l’implémentation d’OpenGL fournie (souvent par le pilote graphique) soit ANGLE (une implémentation d’OpenGL par-dessus DirectX). Avant, il était nécessaire de compiler plusieurs fois Qt pour choisir son implémentation – plusieurs téléchargements sont d’ailleurs disponibles pour une même version de Qt, ce qui brouille les pistes pour les débutants.
Contenu Web
La plus grande nouveauté de Qt 5.4 est le module Qt WebEngine, qui intègre Chromium dans Qt (le moteur de rendu Web utilisé par Chrome, notamment). L’API proposée est voulue facile à utiliser mais toujours facilement extensible. L’intégration à la pile graphique a notamment été particulièrement travaillée, les textures de Chromium étant directement affichées dans le graphe de scène OpenGL de Qt Quick. Ce module est désormais disponible pour Windows, Linux et OS X, en plus des plateformes embarquées.
Le module Qt WebKit continue à être distribué avec Qt 5.4, mais ne verra plus de nouvelles fonctionnalités arriver : les défauts seront toujours corrigés, mais il est envisagé de le déprécier dans les versions à venir, puisque ses fonctionnalités sont reprises et augmentées par Qt WebEngine.
Un deuxième nouveau module fait son apparition : Qt WebChannel propose d’intégrer le code C++ et QML avec des applications Web en HTML et JavaScript, en exposant des fonctionnalités du modèle de métaobjets QObject au code JavaScript exécuté par Qt WebEngine ou Qt WebKit. Il s’agissait d’une limitation des versions précédentes de Qt WebEngine par rapport à Qt WebKit.
Divers
Qt Location, apparu avec Qt Mobility 1.0 il y a quelques années, suit son cours, mais n’est pas encore prêt pour Qt 5.4. Le même sort atteint Qt 3D, également annoncé depuis longtemps et souvent repoussé.
Cette nouvelle version de Qt vient également avec une nouvelle licence, la LGPL 3, mais également le souhait d’unifier l’écosystème entre versions libres et commerciales.
Source : Qt 5.4 Alpha Available