Sortie de la version finale de Qt 5
L'architecture interne du framework C++ a été nettoyée et devient plus modulaire

Le , par dourouc05, Responsable Qt & Livres
À proximité de Noël mais aussi d’une nouvelle fin du monde, Digia dépose un gros cadeau sous le sapin : Qt 5. Pour rappel, Qt est le standard de facto pour les interfaces graphiques en C++, mais il fournit également un bon nombre d’autres fonctionnalités (comme le support de WebKit, pour afficher des pages Web, des fonctionnalités multimédia, de réseau, de script, des interfaces déclaratives avec Qt Quick, etc., sans oublier l’EDI Qt Creator). Pour ceux qui en suivent l’actualité, il est également important de noter qu’il s’agit de la première version majeure depuis que Trolltech, la société l’ayant créé, a été rachetée, d’abord par Nokia, puis par Digia.



Fonctionnalités majeures

Cette version est disponible comme un paquet de binaires pour toutes les plateformes desktop (Linux 32 et 64 bits, Mac OS X 10.7 et 10.8, Windows), comprenant, en plus de Qt 5, l’environnement de développement Qt Creator 2.6, les exemples et la documentation complète.

Les fonctionnalités majeures sont rassemblées dans une vidéo, entièrement générée par une application Qt 5, avec Qt Quick, OpenGL et WebKit. (Les sources sont bien évidemment disponibles : https://qt.gitorious.org/qt-labs/qt5-launch-demo.)



Également à noter : la deuxième beta a apporté une totale refonte de la documentation, elle est maintenant plus adaptée à la modularisation du framework.

Compatibilité

Qt 5 est un grand remaniement de Qt 4 (sorti en 2005), tout en restant dans la continuité : le but est d’avoir un framework ouvert sur le futur, prêt à supporter toutes les plateformes, mais sans rupture forte avec Qt 4, afin de faciliter la migration.

Cette version a donc été l’occasion de bien nettoyer l’architecture interne, notamment avec une modularisation du framework, mais une migration très rapide de la plupart des applications est possible. Ceci implique notamment que les widgets – la base des interfaces graphiques des précédentes versions – sont toujours supportés, bien qu’ils ne soient plus inclus dans le module Qt GUI (ils ont été déplacés dans un autre module, afin d’en faciliter la maintenance (ils ne sont plus la seule et l’unique manière de créer des interfaces).

Un exemple de cette très forte compatibilité : Qt Creator. Une seule base de code est utilisée pour compiler tant avec Qt 5 que Qt 4.

Futur

Pour la série 5.0, encore quelques points seront régularisés : pas de paquet de binaires disponible pour MinGW (le port de GCC pour Windows), étant donné que WebKit ne le supporte pas complètement, ni pour Visual C++ 2012 (il faut compiler Qt 5 soi-même). Il est actuellement prévu de résoudre ces problèmes pour Qt 5.0.1, prévu fin janvier.

Au-delà cette première échéance, la version 5.1 est prévue pour le printemps 2013, où le but sera de stabiliser encore plus le framework et de porter des modules add-ons tels que Qt 3D et Qt Sensors dans les modules principaux. Il est également prévu de montrer les avancées des ports vers Android et iOS.

Pour les versions suivantes, il est prévu que deux versions mineures sortent chaque année.

Contribution

Bien évidemment, il s’agit d’une première version finale, expurgée des bogues les plus problématiques, mais toute une série de problèmes est connue : http://qt-project.org/wiki/Qt500KnownIssues. Si vous souhaitez contribuer au framework (en rapportant de nouveaux bogues, en en corrigeant, en développant de nouvelles fonctionnalités, etc.), n’hésitez surtout pas : http://qt-project.org/contribute.

Déjà un grand nombre de gens ont contribué à cette version : 427 personnes pour le code source. Bien plus pour le rapport de bogues, les discussions, le feedback. Avec un peu plus d’un an, le Qt Project s’est montré être une grande communauté, une grande réussite pour l’avenir du framework.

Source : http://blog.qt.digia.com/blog/2012/12/19/qt-5-0/

Télécharger Qt 5 : http://qt-project.org/downloads

Billet original


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


 Poster une réponse Signaler un problème

Avatar de Freem Freem - Membre émérite https://www.developpez.com
le 21/12/2012 à 14:50
Citation Envoyé par dourouc05 Voir le message
Pour rappel, Qt est le standard de facto pour les interfaces graphiques en C++
Mouai. Seuls les fan de Qt le disent, j'ai l'impression.
Qt avec son moc est au C++ ce que le C++ fut au C à sa création: une sur-couche nécessitant la modification de la chaîne de compilation.

On peut apprécier cette façon de faire, mais de mon côté, je connais (de nom pour la plupart) d'autres outils portables qui évitent de se prendre la tête (car c'est une réelle prise de tête dès lors que l'on utilise pas QtCreator) à modifier la chaîne de compilation C++ dans son IDE favori.

Quelques exemples?
WxWidgets
GTKmm
FLTK
fox toolkit

Je donnerai sûrement un nouvel essai à Qt lorsque l'intégration avec d'autres IDE sera plus simple. Attention, je ne dis pas que QtCreator n'est pas bien, je dis "juste" que quand je l'ai essayé, je ne l'ai pas aimé (les goûts et les couleurs...) pour diverses raisons (déjà beaucoup de place gâchée pour les contrôles et des panneaux dont on a pas besoin en permanence. Comme je l'ai dis, les goûts et les couleurs )

Qt ne pourra jamais aspirer au termes de standard du C++ (de facto ou pas), tant qu'ils n'auront pas résolu ce problème. J'ai d'ailleurs envie de dire que si la réflexion n'existe pas en C++, il y a peut-être une raison...

A moins que je ne sois le seul à considérer ça comme problématique, mais j'en doute, parce que si tout le monde (moi y compris) reconnaît qu'il s'agit d'un bon outil, mais ne s'en sert pas, c'est qu'il doit bien y avoir une raison.
D'ailleurs, marrant qu'un framework portable n'offre pas de binaires pour l'OS le plus répandu: windows (ni pour mingw, ni pour VS, ça veut dire dire en fait: pour windows non?)

Enfin bon... il y a de bonnes applications faites avec Qt, et il semble qu'ils aient fait attention à ne pas casser trop la compatibilité, c'est donc une bonne chose si les performances ont été améliorées: il suffira de presque de recompiler pour booster ces outils.

Un point qui n'a pas été trop abordé, le support du C++11:
je sais qu'aucun compilateur n'implémente complètement la nouvelle norme, et qu'une compatibilité avec l'obsolète implique de pouvoir faire sans, mais ont-ils commencé à donner la possibilité de l'utiliser?
Parce que C++11 offre tout de même de sacrés avantages, et j'ai vraiment hâte à ce que les compilos l'implémentent correctement, et il serait regrettable qu'un framework aussi répandu que Qt n'offre pas la possibilité d'en user.
Avatar de Enerian Enerian - Membre éclairé https://www.developpez.com
le 21/12/2012 à 15:20
Citation Envoyé par Freem Voir le message
Un point qui n'a pas été trop abordé, le support du C++11:
je sais qu'aucun compilateur n'implémente complètement la nouvelle norme, et qu'une compatibilité avec l'obsolète implique de pouvoir faire sans, mais ont-ils commencé à donner la possibilité de l'utiliser?
Parce que C++11 offre tout de même de sacrés avantages, et j'ai vraiment hâte à ce que les compilos l'implémentent correctement, et il serait regrettable qu'un framework aussi répandu que Qt n'offre pas la possibilité d'en user.
Pour ce qui est de C++11, les gars de Qt encouragent son utilisation. Qt Creator supporte pas mal de features et des efforts ont été fait dans le framework.
https://blog.qt.digia.com/blog/2011/05/26/cpp0x-in-qt/
http://woboq.com/blog/cpp11-in-qt5.html
Avatar de Klaim Klaim - Membre expert https://www.developpez.com
le 21/12/2012 à 15:38
Citation Envoyé par gbdivers Voir le message
@Klaim
Allez, petit cadeau de noël : la mise à jour du plugin MSVC pour Qt 5 et MSVC 2012 vient de sortir : http://blog.qt.digia.com/blog/2012/1...qt-5-released/
Super!

Mais donc ca marche avec les binaires Qt5 VS 2010?

Je vais tester de suite tiens...
Avatar de Klaim Klaim - Membre expert https://www.developpez.com
le 21/12/2012 à 15:44
Wow c'est quoi toutes ces licenses a l'installation???? D:

EDIT> Pendant que j'y suis: ya pas de plans pour les binaires en 64 bit aussi pour VS2012?
Avatar de gbdivers gbdivers - Inactif https://www.developpez.com
le 21/12/2012 à 18:49
@Klaim
j'ai pas installé donc je vois pas trop de quoi tu parles. Il n'y a pas que 2 licences ? 1 commerciale et 1 open source ?

Pour MSVC 2012, elle n'est pas prévu qu'en version 64b ?

@Freem
standard de facto pas dans le sens où Qt est une bonne lib pas utilisé ou parce qu'elle complique la chaine de compilation (mais le C++ n'impose pas de toute façon de chaine de compilation) ou parce qu'il existe d'autres libs.
Elle est le standard parce que la plus utlisée, et de très loin. Regarde le nombre d'utilisateur des différentes libs dont tu parles, la fréquentation des forums, la fréquence des news, la présence des devs aux conférences C++, etc

C'est quoi cette histoire de binaire ? Qt propose des binaires pour windows depuis... je sais plus quand, probablement que les premiers hommes préhistoriques avaient déjà des versions de Qt pour windows

déjà beaucoup de place gâchée pour les contrôles et des panneaux
Décidément, j'ai du mal à voir de quoi tu parles... Les icones dans les barres de fenêtres sont relativement petits (plus petits que les icones des barres d'outils habituels), les seuls éléments obligatoires a priori sont le menu et la barre des modes à gauches. Les autres fenêtres sont masquables

Qt ne pourra jamais aspirer au termes de standard du C++ (de facto ou pas), tant qu'ils n'auront pas résolu ce problème
Petite précision, Qt est compatible C++ standard. Pour simplifier l'écriture de certaines parties du code (introspection, signaux/slots), il est possible d'écrire du méta code (les balises de Qt comme signals, slots, Q_OBJECT, etc) qui est convertie en code C++. Mais c'est juste une facilité, si tu veux écrire que du C++ et ne pas passer par le moc, tu peux (mais alors amuse toi bien avec la syntaxe pour créer une connexion, c'est du lourd... cf la doc)
Avatar de Klaim Klaim - Membre expert https://www.developpez.com
le 21/12/2012 à 19:09
Citation Envoyé par gbdivers Voir le message
@Klaim
j'ai pas installé donc je vois pas trop de quoi tu parles. Il n'y a pas que 2 licences ? 1 commerciale et 1 open source ?
Non ya (de memoire)

- LGPL
- Tiers ou quelque chose comme ca
- GPL
- LGPL avec extension

La license est ecrite mais si t'es pas un avocat ca fait un poil peur de se louper, surout que une fois installe, faut desinstaller puis reinstaller pour changer...


Pour MSVC 2012, elle n'est pas prévu qu'en version 64b ?
Je sais pas, mais ca m'etonnerai qu'yait pas au moins 32bit non?
Avatar de Freem Freem - Membre émérite https://www.developpez.com
le 21/12/2012 à 19:14
Citation Envoyé par Enerian Voir le message
Pour ce qui est de C++11, les gars de Qt encouragent son utilisation. Qt Creator supporte pas mal de features et des efforts ont été fait dans le framework.
https://blog.qt.digia.com/blog/2011/05/26/cpp0x-in-qt/
http://woboq.com/blog/cpp11-in-qt5.html
Pas plus mal.
Cela dis, certaines choses ne sont pas prévues d'être utilisées pour le moment a ce qu'il semble, telles que les thread (c'est du moins ce qui est indiqué dans les commentaires). En même temps, j'imagine que passer l'ensemble d'un framework aussi gros à un nouveau standard doit prendre un temps fou, ça peut donc se comprendre.
Avatar de gbdivers gbdivers - Inactif https://www.developpez.com
le 21/12/2012 à 19:25
@Klaim
Pfff, je les avais effectivement oublié celles là...
La LGPL est la licence "classique" (Qt en lib dynamique non modifié)
La GPL est (en gros) la licence pour modifier Qt et mettre les modifs en public
La licence commerciale est pour modifier Qt et masquer les modifs de Qt
Les licences avec extensions (tu as trouvé où ce terme ?) doivent correspondre aux différentes licences des libs externes utilisées dans Qt
Tiers correspond pas a priori à une licence à à différentes sorties des versions de Qt

Pour Qt MSVC 2012. En fait, pour le Tier 1 (la première vague de sortie de Qt, qui peut quand même avoir plusieurs vaguelettes...) correspond aux "plateforme de référence", càs un OS avec un compilateur. MSVC 2012 correspond à windows 8 en 64 bits (http://qt-project.org/doc/qt-5.0/qtd...platforms.html)
Avatar de Klaim Klaim - Membre expert https://www.developpez.com
le 21/12/2012 à 19:31
Citation Envoyé par gbdivers Voir le message
Les licences avec extensions (tu as trouvé où ce terme ?) doivent correspondre aux différentes licences des libs externes utilisées dans Qt
Ca dois pas etre le terme que j'ai lu, j'ai une version en anglais de mon OS et donc de la license.


Pour Qt MSVC 2012. En fait, pour le Tier 1 (la première vague de sortie de Qt, qui peut quand même avoir plusieurs vaguelettes...) correspond aux "plateforme de référence", càs un OS avec un compilateur. MSVC 2012 correspond à windows 8 en 64 bits (http://qt-project.org/doc/qt-5.0/qtd...platforms.html)
Ya une raison technique a ca? Parceque tout le monde passe pas a Windows 8 alors qu'il bosse avec VS2012....
Avatar de gbdivers gbdivers - Inactif https://www.developpez.com
le 21/12/2012 à 19:36
C'est un choix d'avoir qu'une seule plateforme de référence par version d'OS.
Pourquoi MSVC 2012 que sur win 8 64, aucune idée. Je crois pas à une raison technique. C'est probablement un choix... autre (stratégie marketing de Digia ? choix du maintener qui a seulement un win 8 64b ? Je crois avoir vu une discussion du choix de 32 ou 64b sur la mailling list)
Contacter le responsable de la rubrique C++