Sortie de Qt 5 alpha
La nouvelle version majeure de Qt se concentre sur les performances et les capacités graphiques

Le , par gbdivers, Inactif
La version 5 de Qt vient de sortir en version alpha. Cette version est la première version majeure depuis que Qt est devenu autonome avec la création du Qt Project. Beaucoup de personnes ont contribué à cette nouvelle version, pas uniquement des développeurs de chez Nokia. Les différents modules ont été regroupés en deux catégories, les essentiels, installés par défaut, et les add-ons, installés à la demande. L'objectif de cette version alpha est de récupérer les retours des utilisateurs, principalement sur les modules essentiels.

Lars Knoll, le responsable en chef du projet Qt, a publié en mai dernier deux discussions sur les QtLabs pour présenter les approches choisies pour Qt 5 (voir les discussions Thoughts about Qt 5 et Responses to Qt 5). La pensée directrice est résumée dans les phrases suivantes :

« Qt 5 doit être le fondement d'une nouvelle façon de développer des applications. Tout en offrant la puissance de Qt natif en C++, l'accent sera mis sur un modèle où le C++ sera principalement utilisé pour implémenter des fonctionnalités modulaires d'arrière-plan pour Qt Quick », a déclaré Lars Knoll.

Neuf mois de travail, plusieurs centaines d'intervenants et plusieurs milliers de modifications du code ont été nécessaires pour aboutir à cette version alpha. Pour cette première version majeure, l'accent a été mis sur la partie embarquée, proche de la vision que Lars Knoll a décrite, mais il faudra attendre les versions 5.1 ou 5.2 pour que cette vision soit entièrement appliquée pour la version desktop.

Cette version alpha est l'aboutissement d'un travail important sur quatre points : QPA, la pile graphique, la modularité et le nettoyage de l’architecture en déplaçant les QWidgets dans les modules add-ons.

Le Qt Platform Abstraction Layer (QPA)
Pour améliorer la portabilité de Qt, il a été nécessaire de restructurer l'architecture pour isoler toutes les fonctionnalités de bas-niveau qui sont spécifiques à une plateforme. Ce travail a permis d'aboutir au QPA, facilitant le portage de Qt sur toutes nouvelles plateformes. Cette abstraction a été introduite dans Qt 4.8 en remplacement de QWS pour les versions embarquées de Qt, mais elle est maintenant disponible pour toutes les éditions dans Qt 5. La meilleure preuve de l’efficacité de cette abstraction est que plusieurs portages sont en cours de développement : pour QNX, iOS et Android, par exemple.

La réorganisation de la pile graphique
Un autre objectif majeur pour Qt 5 est l'amélioration des performances graphiques, en particulier pour les versions embarquées. Pour ce faire, il a fallu réorganiser la pile graphique, pour bénéficier au maximum de l'accélération matérielle. Pour cela, l'accent a été mis sur l'utilisation d'OpenGL.
Par exemple, QtQuick 2 a subi une réorganisation importante se basant sur le graphe de scène et utilisant OpenGL (GL ES 2 minimum) en arrière-plan. QtGui contient maintenant des classes QOpenGL à la place des classes QGL (maintenues dans le module QtOpenGL pour la compatibilité).
On note l’apparition de nouvelles classes :
  • QGuiApplication, plus légère que QApplication (hérite de QCoreApplication et dérivée par QApplication) ;
  • QWindow, pour manipuler les fenêtres de premier plan. QWidget et dérivées continuent de fonctionner, comme dans Qt 4, avec QPainter, bien que cet outil soit moins utilisé pour les autres piles graphiques (il est maintenant limité à la rastérisation logicielle sur écran, les images et les pixels, avec un backend OpenGL et un autre pour la génération de PDF et l'impression).


L'architecture modulaire
Objectif : flexibilité, possibilité de choisir ses modules pour les utilisateurs, meilleure intégration de QtMobility, faciliter les contributions en les incluant comme modules tiers. Il s’agit principalement de ménage interne, peu visible par les utilisateurs (toujours en cours).

Déplacer QWidget dans un module indépendant
Déplacer ces classes dans le module "widgets" permet de garantir la continuité des QWidget et dérivés, mais également l'évolution vers d'autres approches (QML et QtQuick). Cela nettoie l’architecture sur le long terme.

Installation et compilation
Il y a plusieurs moyens d'installer Qt 5. Le plus simple est d'utiliser les binaires non officiels, régulièrement mis à jour :


Passer de Qt 4 à Qt 5
Les changements importants pour conserver la compatibilité du code écrit pour Qt 4 avec Qt 5 sont d’intégrer le module widgets si on utilise des QWidget ou dérivés et de renommer le module QtQuick en quick1. Voici un exemple de code dans le fichier .pro pour garantir la compatibilité :

Code :
1
2
3
4
5
6
7
greaterThan(QT_MAJOR_VERSION, 4)  
{ 
    QT += widgets 
    QT += quick1 
} else { 
    QT += declarative 
}
Le script Perl qtbase/bin/fixqt4headers.pl met à jour les inclusions des fichiers d'en-tête.

Pour la création de plugins, les macros Q_EXPORT_PLUGIN et Q_EXPORT_PLUGIN2 sont dépréciées et doivent être remplacées par la macro Q_PLUGIN_METADATA, qui permet de lire les informations sans devoir charger le plugin avec la fonction dlopen().

Que pensez-vous de la direction prise par Qt ?
Pensez-vous que Qt Quick et le QML prennent une place trop importante ou au contraire devraient se développer plus ?
Quelles sont les fonctionnalités que vous attendez le plus dans Qt 5 ?


Sources :


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


 Poster une réponse

Avatar de Klaim Klaim
http://www.developpez.com
Expert Confirmé
le 03/03/2013 14:02
J'ai teste l'un des binaires MSVS2012 64Bit et ca a l'air de fonctionner depuis Windows7. Par contre ca me force a passer en 64bit ce qui implique que toutes mes dependences aussi. En fait c'est pas un probleme niveau code, je dois juste corriger des fichiers CMake qui prennent pas ca en compte.

C'est quand meme dommage de pas avoir propose de version 32 bit aussi, la plupart des utilisateurs de mon application sont pas avec des Windows 64 bit pour l'instant.

Ya une raison precise ou c'etait pour se concentrer sur une version en priorite?
Avatar de gbdivers gbdivers
http://www.developpez.com
Inactif
le 03/03/2013 14:17
Pas de raison précise, c'est un choix purement arbitraire. D'autres sur la mailling list avait posé la question. Il y avait déjà une version Win 7 32b MSVC 2010, du coup, ils ont fait une version Win 8, 64b MSVC 2012.
Je suppose que les binaires seront progressivement ajouté avec le temps (mais j'ai pas suivi en détail depuis quelques temps ces histoires)
Sinon, il y a un temps où la rubrique Qt proposait des binaires de Qt pour les versions non pris en charge officiellement. Vous pouvez le faire si vous le souhaitez, en déposant vos binaires sur la page de téléchargement : http://cpp.developpez.com/telecharge...tegorie/10/C-C (ça n'ira pas pour les pros, qui veulent des binaires officiels ou compiler par leurs soins, mais pour les tests, ça ira)
Sinon, voir directement sur qt-project pour demander les binaires
Avatar de Klaim Klaim
http://www.developpez.com
Expert Confirmé
le 03/03/2013 14:45
Merci pour les infos.

Au passage, je suis le seul a avoir ce bug avec VSAddin 1.2.0? https://bugreports.qt-project.org/br...VSADDINBUG-140

On dirait bien que je suis le seul Mais je peu pas non plus faire une reinstall actuellement.
Avatar de gbdivers gbdivers
http://www.developpez.com
Inactif
le 03/03/2013 14:51
J'utilise pas VS (trop cher ) donc jamais testé le plugin
Avatar de Klaim Klaim
http://www.developpez.com
Expert Confirmé
le 03/03/2013 14:54
Citation Envoyé par gbdivers  Voir le message
J'utilise pas VS (trop cher ) donc jamais testé le plugin

Je l'ai gratos via BizSpark, mais faut remplir certaines conditions.

Cela dis je demande ca au cas ou parceque j'ai l'impression que je suis le seul a avoir ce probleme. Mais en fait comme j'utilise CMake, la compilation passe quand meme sans souci. Le seul truc c'est que j'ai pas acces dans VS a QtDesigner par exemple, mais bon c'est pas super grave.

En fait j'ai essaye aussi avec les dernieres build d'ouvrir mon project dans le dernier QtCreator. Malheureusement dans QtCreator, CMake me met des erreurs que je ne comprends pas. Je sais pas si c'est mes scripts qui fouarrent ou si ya un autre probleme lie a la facon dont marche qt, c'est pas evident depuis les erreurs. Dans tous les cas, ca serait pratique de pouvoir switcher a QtCreator comme je fais du cross-platoform (en particulier si on peut utiliser Clang + libc++ dans un future proche...).

Peut etre que je devrais ouvrir une discussion a ce sujet voir si quelqu'un dans le coin peu aider (c'est un projet open-source).
Avatar de gbdivers gbdivers
http://www.developpez.com
Inactif
le 03/03/2013 15:36
Je dois avouer manquer d'expérience avec le module CMAKE de QtCreator, je sais pas trop si le support est correct ou non

Par contre, sous nunux, l'utilisation de Clang pose pas de problème, Qt Creator reconnait automatiquement le compilateur chez moi, faut juste créer un kit utilisant Clang au lieu de gcc
Avatar de LittleWhite LittleWhite
http://www.developpez.com
Responsable 2D/3D/Jeux
le 11/04/2013 17:38
Qt 5.0.2 est disponible
Des binaires Visual Studio 2012 et Visual Studio 2010 sans ANGLE sont disponibles

Cette nouvelle version apporte plus de 600 améliorations à Qt 5.0.1. Comme pour toute autre version mineure, Qt 5.0.2 n'apporte pas de nouvelles fonctionnalités. Toutefois, certains pourront se réjouir de voir de nouveaux binaires :
  • Qt 5.0.2 pour Windows 32-bit (VS 2010, OpenGL, 476 MB) ;
  • Qt 5.0.2 pour Windows 64-bit (VS 2012, 500 MB).


Cette fois-ci c'est Qt Creator 2.7.0 qui est embarqué avec le framework. Il apporte un meilleur support du C++11 et possède l'intégration de Qt Quick 2 et des projets BlackBerry 10.

Finalement, on notera que la compilation statique des bibliothèques Qt fonctionne et qu'il est possible de sauter des modules durant la configuration de la compilation de Qt.

Vous pouvez retrouver la liste complète des changements pour les différents modules :


Vous pouvez télécharger cette nouvelle version sur les pages du Qt Project.

Votre opinion

Aviez-vous eu des problèmes avec les précédentes version de Qt 5 ? Cette nouvelle version les corrige-t-elle ?
Aimez-vous ce rythme rapide de développement de la bibliothèque ?

Source

http://blog.qt.digia.com/blog/2013/0...-0-2-released/
Avatar de Jbx 2.0b Jbx 2.0b
http://www.developpez.com
Membre émérite
le 12/04/2013 23:31
Détrompez moi si je dis une connerie, j'ai un peu du mal à suivre avec toutes ces versions, mais si j'ai bien compris :

- les premières versions "OpenGL-Desktop" sont prévues uniquement en 5.2 ?

- les versions "OpenGL" actuelles, sous Windows, sont au final des versions OpenGL ES 2 ?

- Et que les version actuelles, toujours sous windows, non estampillées OpenGL, sont en fait des versions qui tournent sous Angle ?

C'est en tout cas ce que j'ai pu comprendre jusqu'à maintenant, et qui m’amène à attendre Qt 5.2 avant de porter mon logiciel (actuellement sous 4.8.4), car j'ai besoin d'un support OpenGL 4.x.
Je précise que je ne veut pas recompiler à tort et à travers Qt pour obtenir ce que je veux mais plutôt d'avoir un build tout fait, sans prise de tête, fonctionnel au niveau des samples/démos, quitte à attendre le temps qu'il faut

Merci d'avance pour vos précisions !
Avatar de gbdivers gbdivers
http://www.developpez.com
Inactif
le 13/04/2013 11:35
1. dans 5.1 (qui est actuellement en alpha) et non dans 5.2 (je crois qu'il y aura Qt3D en plus dans 5.2)
2. oui
3. oui

Si tu veux, tu peux utiliser Qt 5, mais tu n'auras pas effectivement le support OpenGL 4, il te faudra créer tes contextes toi même
Je te conseille effectivement de rester sur Qt 4 pour le moment dans ton cas
Avatar de Jbx 2.0b Jbx 2.0b
http://www.developpez.com
Membre émérite
le 14/04/2013 11:27
J'étais pas trop loin de la réalité, merci pour les précisions gbdivers
Avatar de Linunix Linunix
http://www.developpez.com
Membre expérimenté
le 14/04/2013 18:22
Je suis ravis de cette nouvelle ...
J'ai hate de voir de mes propres yeux, les nouvelles fonctionnalités ainsi que les nouveaux changements ...
Offres d'emploi IT
Coach agile h/f
CDI
Société Générale - Ile de France - Paris (75000)
Parue le 21/11/2014
Implémentation tests unitaires h/f
Stage
INGENICO - Ile de France - Paris (75015)
Parue le 25/11/2014
Ingénieur en développement
CDI
AMETIX - Ile de France - Paris (75017)
Parue le 28/11/2014

Voir plus d'offres Voir la carte des offres IT
 
 
 
 
Partenaires

PlanetHoster
Ikoula