Sortie de Qt 5.6 Alpha
Avec des améliorations de performance et de nouvelles fonctionnalités pour Qt 3D et pour l'embarqué

Le , par dourouc05, Responsable Qt
Qt 5.6 vient de sortir en préversion Alpha. Les nouveautés s’égrainent le long des divers modules, avec un grand nombre d’optimisations, notamment au niveau de la mémoire utilisée. Elles sont en grande partie dues à l’utilisation d’analyse statique du code proposée par Clang : utiliser un profileur pour toutes les exécutions possibles dans le code prendrait trop de temps pour un gain trop faible ; par contre, un analyseur statique peut passer sur tout le code et faire remarquer tous les endroits à améliorer. Il est donc très utile quand le problème de performance n’est pas localisé, mais bien réparti sur tout le code. Ce genre d’outil a une compréhension plus fine du C++ qu’un compilateur : là où le compilateur s’arrête à la syntaxe, l’analyseur statique tente de comprendre la sémantique du code (ce qu’il tente de faire) et propose de meilleures manières de l’écrire. Par exemple, un algorithme de la STL pourrait fonctionner plus vite en allouant à l’avance de la mémoire avec std::vector::reserve() ; il pourrait même réécrire automatiquement le code pour suivre les meilleures pratiques concernant QStringLiteral et QLatin1String.

Qt 3D n’est toujours pas finalisé, mais les fonctionnalités de la préversion technologique s’affinent : de nouvelles API pour les tampons et attributs, pour les entrées souris, pour la détection de collisions ; la gestion de l’instanciation, le chargement de scènes glTF (avec un outil pour les compiler : qgltf). De nouveaux exemples ont également été ajoutés.

Dans les modules, quelques changements ont eu lieu. Notamment, des modules désapprouvés par Qt 5.5 ont été supprimés (Qt WebKit et Qt Declarative, qui correspond à Qt Quick 1). De nouveaux modules sont maintenant déconseillés : Qt Script (remplacé par le moteur JavaScript V4, inclus dans Qt QML) et Qt Enginio ; ils pourraient être supprimés dans une prochaine version de Qt. De nouveaux modules font également leur apparition en tant que préversions technologiques : Qt Quick Controls 2.0, des contrôles plus légers, prévus plus particulièrement pour l’embarqué ; Qt Speech pour la reconnaissance vocale, en faisant appel aux API disponibles sur chaque système (le module est actuellement compatible avec Android, OS X et Windows) ; Qt SerialBus, pour faciliter l’accès aux nombreux bus série qui peuplent le monde de l’embarqué, actuellement compatible uniquement avec CAN ; Qt Wayland, avec une API pour le compositeur Wayland stabilisée.

Cependant, la principale avancée concerne les outils utilisés pour le développement de Qt lui-même : l’ancien moteur d’intégration continue, Jenkins, a été remplacé par un nouveau, Coin, développé exclusivement pour Qt (qui pourrait d’ailleurs être distribué sous licence propriétaire ou libre dans le futur). Ainsi, chaque modification apportée au code source de Qt est compilée (voire testée) sur vingt-cinq à trente plateformes, ce qui assure une plus grande stabilité du code.

Sources : Qt 5.6 Alpha released, How to use static analysis to improve performance, New Features in Qt 5.6.


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Jbx 2.0b Jbx 2.0b - Membre expérimenté https://www.developpez.com
le 16/09/2015 à 15:14
Bonjour,
Je suis assez intéressé par Qt Speech et j'aurais voulu commencer à jouer avec.
Malheureusement il semble qu'il ne soit pas dans les packages de la version alpha ? Es-ce que quelqu'un qui aurait un peu fouillé pourrait confirmer ? Merci
Sinon j'attendrais la bêta, tant pis !
Avatar de dourouc05 dourouc05 - Responsable Qt https://www.developpez.com
le 17/09/2015 à 15:03
Sinon, tu peux aussi le compiler chez toi, ça n'est qu'un dépôt Git avec un fichier de projet qmake, rien que de l'habituel . Ça m'intéresse de savoir ce que tu en penses, n'hésite pas à faire quelques retours ici !
Avatar de Jbx 2.0b Jbx 2.0b - Membre expérimenté https://www.developpez.com
le 17/09/2015 à 22:18
Et bien en fait j'ai déjà essayé de compiler le projet QtSpeech trouvé ici avec Qt 5.5 et j'obtiens un bon lot d'erreurs. J'essayerais de vous les loguer quand j'aurais un peu plus de temps.
Et sinon dans Qt 5.6 il n'y est simplement pas inclus, en tout cas je ne l'y ai pas trouvé.
Il y a peut-être une autre solution ?
Avatar de Jbx 2.0b Jbx 2.0b - Membre expérimenté https://www.developpez.com
le 18/09/2015 à 10:55
En fait ça à l'air OK en clonant git://code.qt.io/qt/qtspeech.git.
Je ne suis pas chez moi et j'ai juste un compilateur MinGW sur un Qt 5.4 sous la main, pour l'instant j'ai le droit à un:

G:\Projects\QtSpeech\src\tts\qtexttospeech_win.cpp:42: erreur : sapi.h: No such file or directory
#include <sapi.h>
^
A priori il me manque Microsoft Speech Platform Runtime et/ou Microsoft Speech Platform SDK, je verrais ça sur ma bécane en rentrant.

EDIT pour ceux que ça intéresse:

Bon c'est ok si j'utilise comme compilo VS 2013, je n'ai accès qu'à une seule voix en anglais qui me semble un peu éloigné de ce qui se fait dernièrement (comparé à Cortana ou Ok Google -je n'ai jamais pu tester Siri-), mais ça me conviens pour l'instant. J'essayerai d'ajouter des voix plus tard.

Par contre avec MinGW, toujours le même problème, il ne trouve pas les include de la Speech API Microsoft (sapi.h entre autre).
Avec Android, plateforme qui m'intéressait avant tout, j'ai des soucis mais j'ai peut-être une piste, j'éditerais quand j'aurais fouillé un peu.
Avatar de Jiyuu Jiyuu - Rédacteur/Modérateur https://www.developpez.com
le 11/10/2015 à 11:00


Je m'intéresse de plus en plus au déploiement pour Windows. Le principal souci que je rencontre actuellement vient de WebEngine qui n'est dispo qu'avec la version MSVC 2013. Or il est assez compliqué de faire tourner cette version sur Linux via WINE, ce qui n'est pas du tout le cas avec la version MinGW.

Est possible de voir un jour WebEngine supporté par la version MinGW de Qt ? où dois-je me résoudre à utiliser une VM uniquement pour compiler mes programmes avec la version MSVC 2013 ? À moins que l'un d'entre vous est la solution pour installer cette version avec WINE ? Pour ma part, je bloque à l'installation de Visual Studio 2013 qui cherche désespérément de faire un point de restauration

++

J
Avatar de dourouc05 dourouc05 - Responsable Qt https://www.developpez.com
le 19/12/2015 à 20:44
Qt 5.6 sera une version charnière dans l’histoire de Qt, mais pas vraiment au niveau des fonctionnalités : un support à long terme est prévu pour les trois prochaines années, tout comme ce fut le cas pour Qt 4.8.

Nouvelles fonctionnalités par rapport à Qt 5.5

La première préversion a apporté pas mal de nouveautés, notamment pour Qt 3D et diverses préversions technologiques (les nouveaux Qt Quick Controls, l’accès aux bus série par Qt SerialBus, la reconnaissance vocale et la synthèse vocale avec Qt Speech, la compatibilité avec le compositeur Wayland par Qt Wayland), ainsi que des améliorations de performance.

Cette nouvelle préversion, Qt 5.6 Beta, apporte une meilleure gestion des écrans à haute résolution sur toutes les plateformes, avec un ajustement automatique des tailles de police et des autres éléments d’interface, y compris quand l’utilisateur déplace une fenêtre sur un autre écran avec une densité de pixels différente.

La compatibilité avec Windows 10 est maintenant parachevée, tant pour les applications traditionnelles que WinRT, ces dernières pouvant être distribuées sur le Windows Store — grâce à Qt, la migration se fait en un coup de compilation. Visual C++ 2015 fait maintenant partie de la liste des compilateurs compatibles ; par contre, l’extension pour Visual Studio n’est pas compatible avec la version 2015.

Support à long terme

Le point le plus important de cette version est cependant son support à long terme (LTS), disponible pendant trois ans. La précédente version dans ce cas était Qt 4.8, sortie début 2013, dont le support s’achève ce mois-ci — Qt 5.6 devrait être disponible au premier trimestre 2016, ce qui laissera quelques semaines sans version à support à long terme. Après trois ans, comme pour Qt 4.8, il faudra souscrire un contrat d’extension de support auprès de Digia.

Ce « support à long terme » signifie que Qt 5.6 aura droit à des correctifs, tant pour la sécurité que pour la correction de défauts ou la compatibilité avec de nouveaux systèmes d’exploitation et des compilateurs plus récents autant que possible ; en d’autres termes, Qt 5.6 aura droit à une série de versions de patch, au lieu d’une à deux pour les autres versions mineures de Qt 5. Sur le côté, Qt continuera bien évidemment à évoluer, avec de nouvelles fonctionnalités dans les versions mineures ultérieures (Qt 5.7 et suivantes), mais elles ne seront pas réintégrées dans Qt 5.6, afin de garantir qu’une application utilisant Qt 5.6 continue à fonctionner après une mise à jour de Qt, sans grand risque.

Objectif : faciliter le développement ultérieur

En gros, ce support à long terme permettra de simplifier le code pour Qt 5.7, après une phase de développements pour mettre les différentes plateformes sur un pied d’égalité au niveau des fonctionnalités offertes pour Qt 5.5 et 5.6. Ces simplifications pour Qt 5.7 se feront parfois au détriment de fonctionnalités et de couches de compatibilité dépassées.

Les modules désapprouvés ne font pas partie de cette offre de support à long terme, ils devraient être rapidement supprimés. Cette liste contient Qt Script et Qt Enginio — sachant que Qt WebKit et Qt Declarative ne sont plus livrés dès cette version, remplacés respectivement par Qt WebEngine et Qt Quick 2, par suite de la décision de les désapprouver pour Qt 5.5.

De même, les préversions technologiques ne sont pas incluses, aucune garantie n’est fournie à leur égard : Qt 3D n’a toujours pas atteint un niveau de finition suffisant, à l’instar de Qt Quick Controls 2.0, de Qt Speech, de Qt SerialBus ou de Qt Wayland. Pour les compilateurs, Qt 5.6 sera la dernière version à maintenir la compatibilité avec C++98 et de vieux compilateurs, comme Visual C++ 2008 et 2010 ou encore GCC 4.6.

Sources : Qt 5.6 Beta Released, Introducing Long Term Support.

Et vous ?

Quelles fonctionnalités vous paraissent les plus intéressantes dans cette nouvelle préversion ?
Que vous inspire une version avec un support à long terme ?

Voir aussi

Forum Qt

Ce contenu a été publié dans Qt par dourouc05.
Avatar de dourouc05 dourouc05 - Responsable Qt https://www.developpez.com
le 23/02/2016 à 14:22
La version RC de Qt 5.6 est sortie, avec trois mois de retards sur le planning initial. Elle corrige un bon nombre de défauts, en vue de la sortie de la version finale, la semaine prochaine (elle est prévue le 3 mars).

Télécharger la version RC.
Avatar de dourouc05 dourouc05 - Responsable Qt https://www.developpez.com
le 16/03/2016 à 14:50
Finalement, Qt 5.6 est sorti en version finale, prête pour le grand public, avec un certain retard — Qt 5.7 est d’ores et déjà bien sur les rails. Ces délais sont dus à une nouvelle infrastructure mise en place pour garantir la faisabilité de la promesse première de Qt 5.6 : une assistance technique à long terme (LTS). Ainsi, pendant les trois années à venir, de nouvelles versions seront publiées avec des correctifs pour tous les défauts qui seront découverts dans cette version, au niveau des fonctionnalités et de la sécurité.

Infrastructure

Le travail d’infrastructure a principalement porté sur un système d’intégration continue, nommé COIN, après une année de travail. Il remplace le système précédent, déjà enfanté dans la douleur, qui exploitait Jerkins. COIN a le principal avantage d’être incrémental, ce qui accélère fortement le test des modifications apportées au code source de Qt. Ce système utilise notamment les mêmes configurations que celles des paquets binaires fournis à chaque nouvelle version, ce qui limitera aussi fortement le temps requis pour la génération des paquets. En conséquence, grâce à COIN, les développeurs pourront tester leur code sur un plus grand nombre de configurations, pour s’assurer d’une très haute qualité.

Windows 10

Dès Qt 5.5, la compatibilité avec Windows 10 est assurée. Avec cette nouvelle version, elle est encore améliorée, avec notamment l’utilisation des API Win32 (classiques) et WinRT (modernes, pour les applications distribuées par le Windows Store). Ainsi, pour déployer son application dans le Windows Store, la principale modification à effectuer sera une recompilation avec la version adaptée de Qt.

Les binaires de Qt sont maintenant aussi disponibles pour Visual C++ 2015. par contre, pour l’intégration à Visual Studio 2015, il faudra encore attendre un peu : l’extension utilise des mécanismes de Visual Studio désapprouvés depuis quelques années et maintenant supprimés. Elle est en cours de réécriture complète, ce qui aura aussi pour avantage de la rendre compatible avec l’édition Community (gratuite) de Visual Studio (précédemment, l’extension Qt n’était disponible que pour les éditions payantes de Visual Studio).

Écrans à haute résolution

Les développeurs de Qt 5.6 ont beaucoup porté attention aux écrans à haute résolution (comme l’écran Retina des MacBook d’Apple), sur toutes les plateformes : le niveau de qualité autrefois disponible uniquement sur OS X est maintenant atteint pour Windows et Linux. Les applications écrites pour une résolution traditionnelle s’adapteront automatiquement aux densités de pixels bien plus importantes des écrans haut de gamme actuels — même lors du passage d’un écran à l’autre quand les densités varient. Ces modifications s’appliquent tant aux applications Qt Widgets que Qt Quick.

Qt WebEngine

Le nouveau moteur Web, Qt WebEngine, basé sur Chromium (le moteur de Google Chrome), a vu bon nombre d’améliorations depuis Qt 5.5. Une mise à jour de Chromium a été effectuée vers la version 45, ce qui apporte moult nouvelles fonctionnalités et corrections de défauts. De plus, les extensions Pepper (PPAPI) sont maintenant gérées : il est possible d’afficher des animations Flash, par exemple. La configuration des serveurs mandataires de Qt est aussi utilisée, au lieu des paramètres par défaut de Chromium. L’API WebActions est maintenant disponible, comme elle l’était pour Qt WebKit. Pour Linux, afin de contrer les griefs exprimés par certains mainteneurs de distribution, les bibliothèques système sont privilégiées par rapport à des versions non partagées.

Un autre module a fait son apparition : Qt WebEngineCore, qui n’expose que des API de bien plus bas niveau. Ainsi, il devient possible de définir de nouveaux protocoles pour les URL, par là d’intercepter ou de bloquer des requêtes qui passent sur le réseau, mais aussi de tracer et de bloquer les témoins de connexion.

Télécharger Qt 5.6.

Source : Qt 5.6 released
Ce contenu a été publié dans Qt par dourouc05.
Avatar de Jiyuu Jiyuu - Rédacteur/Modérateur https://www.developpez.com
le 16/03/2016 à 15:42


On peut aussi rajouter, si je ne m'abuse, l'arrivée des Qt.Labs.Controls qui doivent permettre une meilleure utilisation des Controls de QML avec les appareils mobiles, un des points qui me faisait attendre avec impatience cette nouvelle version.

Ce que je regrette le plus par contre c'est l'absence (encore) de modules permettant depuis QML d'écrire ou générer des fichiers de formats "standards" : texte, pdf, odt, ods, ... Il faut encore passer par du pur C++ et je trouve ça dommage.

Mais ça viendra j'en suis sûr, tout comme la présence, un jour peut-être, d'une visionneuse PDF simple, mais si l'emploi de pdfjs l'est assez .

++

J
Avatar de dourouc05 dourouc05 - Responsable Qt https://www.developpez.com
le 16/03/2016 à 17:31
Citation Envoyé par Jiyuu Voir le message
On peut aussi rajouter, si je ne m'abuse, l'arrivée des Qt.Labs.Controls qui doivent permettre une meilleure utilisation des Controls de QML avec les appareils mobiles, un des points qui me faisait attendre avec impatience cette nouvelle version.
C'est une préversion, pour le moment : la version finale arrive très bientôt, avec Qt 5.7 http://qt.developpez.com/actu/96855/...ciaux-liberes/.

Pour la génération de documents, tu peux très bien porter une bibliothèque vers Qt Quick . Comme KD Reports ou QtRPT. Le principe du logiciel libre, c'est que n'importe qui peut contribuer aux fonctionnalités — à condition certes d'avoir le temps .
Responsable bénévole de la rubrique Qt : Thibaut Cuvelier -