Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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

Le , par gbdivers

0PARTAGES

14  0 
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 : Sélectionner tout
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 :

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de dtrosset
Membre averti https://www.developpez.com
Le 19/04/2012 à 0:56
J'attendais surtout la fin du precompilateur moc ...
6  1 
Avatar de adteulade
Nouveau membre du Club https://www.developpez.com
Le 22/04/2012 à 12:14
Je pense que s'ils s'orientent vers plus de compatibilité vers des platforms comme IOS et android l'utilisation de Qt par tous les développeurs va exploser, de part sa simplicité d'utilisation et la clarté de sa doc !!!
c'est selon moi la meilleur bibliothèque pour développer
2  0 
Avatar de gbdivers
Inactif https://www.developpez.com
Le 13/12/2012 à 9:48


Je suis dans le même cas (win 7 64 bits) et pas rencontré de problème

"recompiler" les exemples ne sont pas compiler, ni en 32, ni en 64, ce ne sont que les sources. Dont pas besoin de les recompiler, il faut juste les ouvrir et les lancer. De plus, un programme 32 bits tourne sans problème sur window 64
Et la doc de Qt est reconnu pour être l'une des plus complète

Bref, message étrange...
2  0 
Avatar de gbdivers
Inactif https://www.developpez.com
Le 03/03/2013 à 10:16
Cela fait des années que QFtp est déprécié, il faut pas s'étonner qu'il soit supprimé un moment donné.
Le pourquoi de la suppression, je dois avouer ne pas savoir, je me suis pas trop intéressé à la question

Quand au fait que Qt se meurt...
2  0 
Avatar de bretus
Membre éprouvé https://www.developpez.com
Le 31/08/2012 à 21:12
Citation Envoyé par Freem Voir le message
Je pense que c'est le truc qui rebute le plus d'utilisateurs potentiels.
Bon, j'imagine que s'ils continuent sur la voie de la modularité, ce sera faisable un jour...
J'ai du mal à voir le lien avec la modularité. Le moc me semble surtout indispensable pour faire de la réflexion et de l'introspection sans enregistrer à part la liste des propriétés et méthodes disponibles.

Je rate un point?
1  0 
Avatar de dourouc05
Responsable Qt & Livres https://www.developpez.com
Le 06/12/2012 à 18:28
La RC de Qt 5 est sortie, la Beta 2 étant disponible depuis les Developer Days, début novembre.

Sur ce temps, l’objectif a été la finalisation de l’API Qt et la résolution de bogues, il s’agit de l’étape de polissage du produit avant qu’il soit labellisé final. La structure et le contenu n’ont presque pas changé depuis la version précédente, à deux exceptions près :

  • la documentation a été restructurée, pour la rendre plus facile d’accès ; de même, les exemples ont été revus et sont désormais disponibles depuis l’écran d’accueil de Qt Creator ;
  • quelques changements dans les API ont été apportés.
L’objectif de cette nouvelle version majeure était de faciliter autant que possible la transition depuis Qt 4, ces nouveaux changements d’API ne font pas changer la balance.

Cette nouvelle version devrait être très proche de la version finale : à moins que de bogues importants soient remarqués d’ici là, la version finale devrait sortir la semaine prochaine. Sinon, une nouvelle RC sera publiée. L’objectif de Qt 5 en 2012 devrait donc être respecté !

Source : http://blog.qt.digia.com/blog/2012/12/06/qt-5-0-release-candidate/
La nouvelle documentation : http://qt-project.org/doc/qt-5.0/qtdoc/index.html
Les changements depuis Qt 4 : https://qt.gitorious.org/qt/qtbase/blobs/stable/dist/changes-5.0.0
Télécharger Qt 5 RC : http://qt-project.org/downloads

Billet original
1  0 
Avatar de air-dex
Membre expert https://www.developpez.com
Le 04/02/2013 à 16:39
En parlant de bugs, la màj de Qt 5.0.0 vers Qt 5.0.1 ne peut se faire que via une réinstallation complète de Qt5. Le "Maintenance Tool" de Qt5 a un bug rendant impossible la modification de l'installation actuelle ainsi que la màj des composants déjà installés. La seule chose possible à partir du Maintenance Tool est la suppression complète. Le bug est déjà connu depuis Qt 5.0.0 et est donc répertorié ici.
1  0 
Avatar de Klaim
Membre expert https://www.developpez.com
Le 04/02/2013 à 19:24
Citation Envoyé par gbdivers Voir le message
Ok, là tu m'as perdu Je dois avouer utiliser Qt sous différentes plateformes, sans avoir eu besoin d'utiliser ce QtMain. Mais c'est peut être transparent quand on utilise qmake ? Sinon, comme j'ai pas testé VS 2012 avec Qt 5.0.0, je sais pas trop quel est ce problème spécifique de QtMain, j'ai jamais rencontré
Tu bosses sous windows? Verifie comment est declare ton main(). Si tu ne link pas avec QtMain alors soit tu as des macros pour avoir la bonne signature de WinMain(), soit c'est un projet "console" et ya une console qui s'affiche quand tu le lances.

C'est vrai pour tous les projets GUI sous windows, quel que soit la lib que t'utilises.

Mais c'est peut être transparent quand on utilise qmake ?
Certainement! Le link doit se faire tout seul j'imagine. Moi je le definis specifiquement parceque j'utilises CMake.

Enfin bref, tant qu'ils sortent des binaires bientot, je me fais pas de souci.
1  0 
Avatar de gbdivers
Inactif https://www.developpez.com
Le 19/02/2013 à 16:31
Ni vrai, ni faux. Ils disent juste "voici les binaires compilés avec VC 2012 sur win 8", pas que cela marche ou ne marche pas ailleurs. Ils testent un certain nombre de combinaison possible (OS, compilateur, options de compilation), mais ils ne peuvent pas être exhaustif. C'est au utilisateurs de tester si c'est compatible sur les autres plateformes et de remonter les éventuels bugs
1  0 
Avatar de gbdivers
Inactif https://www.developpez.com
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
1  0