Developpez.com - Rubrique Qt Creator

Le Club des Développeurs et IT Pro

Sortie de la version finale de Qt 5

L'architecture interne du framework C++ a été nettoyée et devient plus modulaire

Le 2012-12-21 13:42:49, 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
  Discussion forum
112 commentaires
  • gbdivers
    Inactif
    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...
  • air-dex
    Membre expert
    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.
  • Klaim
    Membre expert
    Envoyé par gbdivers
    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.
  • gbdivers
    Inactif
    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
  • gbdivers
    Inactif
    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
  • gbdivers
    Inactif
    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
  • Envoyé par Freem
    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
  • Klaim
    Membre expert
    Envoyé par gbdivers
    @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...
  • Klaim
    Membre expert
    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?
  • gbdivers
    Inactif
    @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)