Cette version a eu un cycle de développement assez long, ce qui a entraîné un décalage entre la sortie de Qt Creator (l'environnement de développement officiel) et Qt. La dernière version stable est donc la 2.0.1 et la 2.1 devrait sortir bientôt une prise en charge complète de Quick.
La suite de cette dépêche abordera les nouveautés de Qt 4.7 bien évidemment, mais aussi plusieurs projets en cours chez Nokia et qui feront vraisemblablement leur entrée dans les prochaines versions de Qt. Qt, c'est quoi?
Qt est une bibliothèque multiplateforme couvrant un très large spectre de cas d'utilisation. Bibliothèque majeure dans le monde du logiciel libre (elle sert notamment de base à KDE), elle est également couramment utilisée dans le milieu du logiciel propriétaire (Adobe, Google, Opera, etc.). En plus de permettre de développer simplement des applications graphiques portables, elle permet également de faire (liste non exhaustive) :
- du réseau (QtNetwork)
- de la manipulation de documents XML (QtXml, QtXmlPatterns et QtSvg) ; un moteur de rendu HTML basé sur WebKit est également intégré (QtWebKit)
- de la base de données relationnelle (QtSql) (avec une gestion native des principales bases de données comme DB2, MySQL, Oracle, ODBC, PostgreSQL ou SQLite
- du multimédia via Phonon (Phonon module) développé au sein de KDE
- du script via QtScript (QtScript)
- de la 3D via OpenGL (QtOpenGL)
- de l'internationalisation via un outil pour les traducteurs : Qt Linguist (internationalisation)
- de la programmation concurrente via des processus légers (threads) ou un framework généraliste QtConcurrent (threads QtConcurrent)
- des tests unitaires (QtTest)
- de créer des interfaces graphiques pour les non-programmeurs via l'excellent Qt Designer (Designer manual)
- ...
Qt ne se limite pas au C++ (bien que cela soit le langage de prédilection et le seul officiellement pris en charge depuis l'arrêt de QtJambi pour Java) car plusieurs bindings existent : Python, Java, C# et quelques autres moins avancés.
Quick
Quick (pour Qt UI Creation Kit) est l'aboutissement de presque deux ans de travail sur QML et les technologies associées. Il permet de créer facilement des interfaces dynamiques qui sont plus en accord avec ce qui se fait actuellement sur les smartphones, ce qui n'est pas facilement réalisable avec Qt Designer, qui est la méthode traditionnelle pour concevoir des interfaces en utilisant Qt.
Quick est conçu de manière à simplifier la conception d'interface graphique en vue de permettre à des non-développeurs (comme des graphistes et des ergonomes) de travailler avec autres choses que des maquettes.
Autres choses dans Qt 4.7
WebKit, le moteur de rendu derrière Safari est intégré depuis la version 4.4 de Qt et est régulièrement synchronisé avec la version de développement. Les diverses améliorations dans WebKit ont amélioré significativement les performances par rapport à Qt 4.6. Le module de script QtScript profite également de cette mise à jour, car il utilise le moteur JavaScript de WebKit : JavaScriptCore. Toujours côté performances, Nokia annonce qu'une équipe dédiée est en place pour travailler sur ce point à plein temps.
Le statut de la connexion au réseau (actif ou non), ainsi que le type (Ethernet, WiFi, Bluetooth ou encore 3G), peut maintenant être récupéré via le module QtNetwork.
La version Mac de Qt utilise maintenant par défaut l'API Cocoa en lieu et place de Carbon. Cette dernière ne sera plus prise en charge dans Qt 4.8.
QtCreator
QtCreator est disponible en version 2.0.1. L'une des principales avancées de cette version 2 est la mise en avant de l'aspect multiplateforme de Qt à partir d'un même code. Pour cela, une partie de l'interface de Qt Creator a été revue pour faciliter la génération de plusieurs binaires pour des cibles différentes.
La prochaine version, la 2.1, apportera une prise en charge complète de Quick à travers un concepteur d'interface qui ressemble sur bien des points à celui de Flash. Vous pouvez le découvrir dans les dernières versions de Qt Creator.
QtMobility
Qt Mobility est une collection de classes destinées principalement (mais pas que) aux smartphones et couvrent notamment les cas d'utilisation suivants :
- gestion de contacts
- recherche de services
- multimédia
- envoi et réception de messages
- géolocalisation
- ...
La partie multimédia reste au stade de la bêta, même si l'API est assez stable et qu'un manque de Qt concernant l'acquisition audio est comblé.
QtOpenCL et accélération matérielle
OpenCL est une API du Khronos Group (qui est notamment en charge de l'évolution d'OpenGL) et initialement développée par Apple, visant à permettre d'utiliser la puissance de calcul offerte par les GPU (les processeurs graphiques). Il est particulièrement intéressant d'utiliser ces processeurs, car ils sont spécialement conçus pour offrir de meilleures performances que les CPU dans le domaine de la 2D et 3D. Nokia s’est donc penchée sur la possibilité de permettre au développeur d'utiliser OpenCL au sein d'un projet Qt, mais également d'utiliser cette puissance de calcul au sein même de Qt, pour améliorer les capacités graphiques de ce dernier. Quelques démonstrations de faisabilité ont été présentées et les gains semblent très intéressants sur un ordinateur personnel (de 5 fps à 120 fps) et un peu moins intéressants sur l'embarqué (de 10 fps à 60 fps) en raison du fait que les processeurs ARM (qui sont largement utilisés dans les mobiles) offrent déjà une accélération pour certaines opérations graphiques.
L'utilisation de l'accélération matérielle pour certaines parties de Qt est déjà bien avancée, c'est ainsi que les animations CSS et les transformations 3D dans Qt Webkit pourront en profiter dans le futur. Ces travaux sont à rapprocher de ceux de Google sur Chrome, donc ceux sur l'accélération par GPU.
Plus de modularité pour Qt 4.8
Durant le développement de Qt 4.7, les développeurs du framework semblent avoir pris conscience que Qt n'est pas assez modulaire et que cela a posé des problèmes de cohérence lors de la sortie de la version 4.7. Cela a notamment abouti au retrait du module QtMultimedia de QtMobility 1.0, pour le laisser en bêta. Les développeurs ont d'ores et déjà annoncé que la modularisation de Qt est un objectif de Qt 4.8.
MeeGo
MeeGo est une distribution Linux destinée à l'embarqué (smarphone, tablette, véhicule, télévision, etc.), utilisant comme système de paquet les RPM et comme environnement de développement Qt. C'est le résultat de la fusion de Maemo (projet de Nokia) et Moblin (projet d'Intel).
Meego est destiné à concurrencer Apple et Google dans le domaine des systèmes d'exploitation pour smartphone et à faire revenir sur le devant de la scène Nokia qui a pris énormément de retard en terme de part de marché sur ce secteur. La direction de Nokia a récemment été particulièrement chamboulée en raison de ce retard (démission du numéro un et deux et arrivée d'un transfuge de Microsoft).
MeeGo semble assez ouvert pour permettre la mise au point de produits utilisant plusieurs "stores". Ainsi, la tablette WeTab utilisant MeeGo est compatible (entre autres) avec l'Android Market de Google.
Le rapprochement entre Nokia et Intel est important, à tel point qu'ils se sont mis ensemble pour ouvrir un laboratoire de recherche sur les interfaces utilisateurs.
SDK et contributions
Après ces présentations, si vous voulez tester Qt et son environnement de développement, c'est ici que cela se passe.
Pour contribuer aux différents projets liés à Qt, Gitorious est votre ami si vous êtes développeurs et pour tout le reste, il y a le gestionnaire de bugs.
Aller plus loin
- La documentation officielle (10 clics)
- Les nouveautés de cette version (6 clics)
- Le journal des modifications (8 clics)
- Qt Creator (22 clics)
- Qt sur Wikipédia (23 clics)
- Site de la bibliothèque Qt (20 clics)
# PySide
Posté par sanao . Évalué à 10.
Il existe depuis longtemps un binding Python PyQt [1], mais Nokia travaille, via OpenBossa [2] sur PySide [3]. C'est un binding Python en LGPL, là où PyQt est sous double licence commercial et libre si le programme est GPL. Pour la petite histoire, Nokia a essayé de négocier avec Riverbank (l'éditeur de PyQt) pour utiliser son binding, mais la négociation a échoué et PySide est né.
Seule les version de Qt 4.5 et 4.6 et Python 2.5 et 2.6 sont actuellement supporté. Un des futurs objectifs est de supporter Python 3 (voir la FAQ [4]).
Comme tous les projet Qt, c'est sur Gitorious que se trouve le code source [5].
[1] : [http://www.riverbankcomputing.co.uk/software/pyqt/download]
[2] : [http://web.openbossa.org]
[3] : [http://www.pyside.org]
[4] : [http://www.pyside.org/faq/]
[5] : [http://qt.gitorious.org/pyside]
[^] # Re: PySide
Posté par Philippe F (site web personnel) . Évalué à 3.
La dernière fois que j'ai regardé, ça avait l'air d'un projet de loser. A part proposer d'avoir à la fois les méthodes en MixedCase et underscore (genre avoir toString() et to_string() ), il y avait pas grand chose de concret sur le développement.
Le support de Python avait l'air quand même assez ridicule, l'utilisation de boost allait bouffer des tonnes de mémoire, et j'en passe.
Perso, je suis pas prêt de lacher l'excellent travail de Phil Thompson pour ça.
[^] # Re: PySide
Posté par Albert_ . Évalué à 0.
[^] # Re: PySide
Posté par mathgl . Évalué à 2.
[^] # Re: PySide
Posté par GeneralZod . Évalué à 5.
oui, ça fonctionne. Il est déjà disponible pour Fedora 14 (la béta sort en fin de semaine)
> Le support de Python avait l'air quand même assez ridicule, l'utilisation de boost allait bouffer des tonnes de mémoire, et j'en passe.
PySide n'utilise plus Boost.Python mais son propre générateur de bindings aka shiboken basé sur QtCore et l'api CPython.
> La dernière fois que j'ai regardé, ça avait l'air d'un projet de loser
Depuis le passage à shiboken, l'API est moins "bizarre", la documentation est très bien fournie (avec des exemples et tout), PySide supporte également QtMobility.
Même si PyQt4 a frôlé l'excellence (meilleur toolkit Python multiplateforme, premier toolkit à supporter Python3 -- Tkinter ne compte pas c'est une bouse), PySide est bien parti pour le taquiner d'ici quelque temps.
[^] # Re: PySide
Posté par tesiruna . Évalué à 3.
Le problème (ou la force ?) de PyQt4, est que l'API est strictement identique à
celle de Qt4. L'avantage, c'est qu'en connaissant l'un on peut facilement passer
à l'autre (à quelques adaptations près). L'inconvénient, c'est que ça ne
s'adapte pas spécialement bien avec Python (itération de tableaux,
QString<->(str,unicode), QVariant qui devrait être inutile, etc.).
# KDE/GNOME
Posté par Anonyme . Évalué à 8.
[^] # Re: KDE/GNOME
Posté par pasBill pasGates . Évalué à 10.
Ok, je -->[]
[^] # Re: KDE/GNOME
Posté par claudex . Évalué à 10.
« Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche
[^] # Re: KDE/GNOME
Posté par phoenix (site web personnel) . Évalué à 10.
[^] # Re: KDE/GNOME
Posté par Jeanuel (site web personnel) . Évalué à 5.
Gnome a toujours été la solution de replis de kde face au "problème" Qt. Il le reste.
[^] # Re: KDE/GNOME
Posté par B16F4RV4RD1N . Évalué à 9.
Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it
[^] # Re: KDE/GNOME
Posté par Jeanuel (site web personnel) . Évalué à -7.
[^] # Re: KDE/GNOME
Posté par Philippe F (site web personnel) . Évalué à 5.
Parce que Gtk a beau être plus ou moins libre (la LGPL, ça vaut quand même pas une bonne GPL), RedHat (principal contributeur de Gtk) pourrait bien l'orienter principalement vers l'embarqué. Voire même l'orienter exclusivement vers l'embarqué.
En plus, autant pour Qt, on a la FreeQt Foundation ( http://www.kde.org/community/whatiskde/kdefreeqtfoundation.p(...) ) qui garantit que Qt sera toujours GPL si Nokia abandonne le projet, autant pour Gtk, on a pas du tout ce type de garantie. Si Redhat décide un jour d'arrêter son investissement dans Gtk, la bibliothèque va sérieusement se retrouver au ralenti.
[^] # Re: KDE/GNOME
Posté par Jeanuel (site web personnel) . Évalué à -5.
[^] # Re: KDE/GNOME
Posté par jbbourgoin (site web personnel) . Évalué à 2.
GTK c'est libre, mais selon les prédictions de Paco Rabanne personne ne voudrait à l'avenir investir dedans.
Il reste donc comme solutions "sérieuses" dans le monde du libre :
* E17 (l'environnement de dev : evas etc.)
* Tk
* Fltk
Les trucs rapides quoi.
Bon, y a GNUstep aussi. Celui-ci on est tranquille, aucune méchante boîte proprio ne voudra le racheter... (c'est un fan de GNUStep qui dit ça, sniiiiiif)
[^] # Re: KDE/GNOME
Posté par MCMic (site web personnel) . Évalué à 3.
Tu confonds avec Qt ;-)
[^] # Re: KDE/GNOME
Posté par jbbourgoin (site web personnel) . Évalué à 2.
:D
[^] # Re: KDE/GNOME
Posté par grid . Évalué à 2.
Voilà, tout est dit. Je pense que qu'une communauté de libriste est complétement capable de forker un framework genre Qt. Ensuite, il existe pas mal de client desktop qui paye leur licence à Nokia/TrollTech, donc Qt sur le Desktop n'est pas en danger.
>>> Gnome a toujours été la solution de replis de kde face au "problème" Qt
Ah bon, Gnome n'est plus le clone de Mac OS X ?
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 10.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: KDE/GNOME
Posté par Ghis . Évalué à 2.
[^] # Re: KDE/GNOME
Posté par Frank-N-Furter . Évalué à 4.
PS: GNUStep semble aussi actif que The Hurd
Depending on the time of day, the French go either way.
[^] # Re: KDE/GNOME
Posté par Jeanuel (site web personnel) . Évalué à 10.
Ce sont donc bien des intégristes de la licence qui sont les pères des nazis de l'interface.
[^] # Re: KDE/GNOME
Posté par Philippe F (site web personnel) . Évalué à 3.
[^] # Re: KDE/GNOME
Posté par Albert_ . Évalué à 3.
[^] # Re: KDE/GNOME
Posté par Gof (site web personnel) . Évalué à 6.
Nokia accepte les contributions externes, et essaye d'ouvrir au maximum le développement de Qt.
http://labs.qt.nokia.com/2010/06/03/qt-and-open-governance/
[^] # Re: KDE/GNOME
Posté par ckyl . Évalué à 3.
(Réponse ironique à http://linuxfr.org/comments/1164653.html#1164264 )
[^] # Re: KDE/GNOME
Posté par GeneralZod . Évalué à 10.
Troll mort et enterré depuis au moins 2004, il existe un accord qui lie KDE eV et Trolltech qui permet à la KDE Qt Free Foundation (gérer à parité par les deux parties) de passer unilatéralement la dernière version open source sous licence BSD. Et ce droit est applicable à partir du moment, où douze mois se sont écoulés depuis la dernière version majeure (je précise pour les amis malcomprenants)
http://www.kde.org/community/whatiskde/kdefreeqtfoundation.p(...)
> on fait quoi ? un fork ? C'est super facile pour un petit projet comme ça.
Depuis que Qt utilise git et que Nokia encourage les contributions externes, c'est beaucoup moins irréaliste que feu Harmony. :o)
[^] # Re: KDE/GNOME
Posté par Jeanuel (site web personnel) . Évalué à -1.
[^] # Re: KDE/GNOME
Posté par fearan . Évalué à 2.
On est pas vendredi !
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
# Pour combien de temps ?
Posté par Philippe M (site web personnel) . Évalué à -1.
Surtout que Nokia est en perte de vitesse sur les smartphones face aux concurrents, j'imagine bien un re-centrage de la stratégie de Nokia autour de leur produit à eux et l'abandon de différents projets, de plus à ma connaissance Qt n'est utilisé sur aucuns téléphones de la marque.
Born to Kill EndUser !
[^] # Re: Pour combien de temps ?
Posté par Corentin Chary (site web personnel) . Évalué à 8.
Nokia encourage à utiliser Qt pour toutes les nouvelles appli Symbian, Maemo et Meego.
Sur les nouveau Symbian, c'est installé d'office, sur les autres, ça s'installe facilement.
Meego sera complètement basé sur Qt.
[^] # Re: Pour combien de temps ?
Posté par sanao . Évalué à 1.
Et concernant un changement de licence de Qt, c'est une des raisons pour passer Qt sous BSD [http://www.kde.org/community/whatiskde/kdefreeqtfoundation.p(...)].
Je sais, c'est plus facile à dire qu'à faire. Mais l'envergure de KDE permet certainement de mener le projet à bon terme je pense.
[^] # Re: Pour combien de temps ?
Posté par Albert_ . Évalué à 6.
Tu veux dire que se taper un ancien de Microsoft est une plaie et une sorte de purgatoire? :)
[^] # Re: Pour combien de temps ?
Posté par Maclag . Évalué à 2.
------------>[ ]
[^] # Re: Pour combien de temps ?
Posté par Gof (site web personnel) . Évalué à 7.
Qt deviens chez Nokia le framework de base de tout leur future smartphones.
Il y a seulement 2 ans que Trolltech a été racheté. C'est moins que le temps qu'il faut pour adapter toute la chaîne de produits.
Le prochain smartphone (N8) sera avec Qt. Et toutes les nouvelles applications développé par Nokia sont basé sur Qt.
[^] # Re: Pour combien de temps ?
Posté par Philippe M (site web personnel) . Évalué à 1.
Born to Kill EndUser !
[^] # Re: Pour combien de temps ?
Posté par Albert_ . Évalué à 3.
[^] # Re: Pour combien de temps ?
Posté par Trollgouin . Évalué à 1.
# Qt sur Meego, j'ai pas très bien compris.
Posté par Giljåm . Évalué à 1.
Alors, il est ou Qt ?
[^] # Re: Qt sur Meego, j'ai pas très bien compris.
Posté par Frank-N-Furter . Évalué à 10.
DTQ?
Depending on the time of day, the French go either way.
[^] # Re: Qt sur Meego, j'ai pas très bien compris.
Posté par Gof (site web personnel) . Évalué à 1.
Mais ils ont compris que Qt était techniquement bien supérieur, et vu que maintenant c'est LGPL, ils ont décider de faire le changement.
Ce changement prends du temps, car il consiste à réécrire tout, mais toutes les nouvelles applications sont développé avec Qt.
(Qt est-il tellement supérieur que ça vaux le coup de perdre des années travail et d'expériences avec Gtk+ ?)
[^] # Re: Qt sur Meego, j'ai pas très bien compris.
Posté par cedric . Évalué à 1.
Et comme ceux sont deux societes, Intel et Nokia, qui sont derriere Meego, ils ne vont pas reecrire ce qui marche/existe deja. Ils s'attaquent d'abord a l'enorme TODO pour rendre utilisable Meego sur un telephone.
[^] # Re: Qt sur Meego, j'ai pas très bien compris.
Posté par dguihal . Évalué à 3.
[^] # Re: Qt sur Meego, j'ai pas très bien compris.
Posté par Albert_ . Évalué à 0.
Je ne sais pas pourquoi mais je ne suis pas sur que beaucoup de personnes neutre (sans attache sentimentale a l'un ou l'autre) soit d'accord.
[^] # Re: Qt sur Meego, j'ai pas très bien compris.
Posté par Guillaume Denry (site web personnel) . Évalué à 3.
Ni l'un ni l'autre, Qt a un spectre opérationnel beaucoup plus large que GTK+ depuis bien longtemps. A la rigueur, QtGui...
[^] # Re: Qt sur Meego, j'ai pas très bien compris.
Posté par sanao . Évalué à 2.
[^] # Re: Qt sur Meego, j'ai pas très bien compris.
Posté par Adrien BUSTANY (site web personnel) . Évalué à 1.
À noter que dans MeeGo, une grosse partie du middleware utilise des technos basées sur GObject, comme tu l'as mentionné: telepathy, tracker, etc.
[^] # Re: Qt sur Meego, j'ai pas très bien compris.
Posté par Maclag . Évalué à 10.
C'est vrai que la stratégie est très curieuse, on a l'impression que tout a été bien pensé ensemble:
- Un OS utilisant massivement les produits Gnome
- Le rachat d'une boite qui fait strictement le contraire (Trolltech)
- Une migration en bonne et due forme du système de paquets.
Finalement, je ne sais pas si on peut dire que Meego aura quoi que ce soit à voir avec Maemo à part le logo Nokia...
Mais rassurez-vous:
Après avoir développé Meego, Nokia va subdiviser ses activités matérielles et logicielles, la partie matériel décidera pour les smartphones qu'il faut racheter une boite qui maitrise les EFL tout en adoptant des paquets DEB.
Ils en profiteront pour réécrire OpenOffice en OCaml avant de se demander qui racheter pour faire le binding EFL pour OCaml.
Une fois qu'ils auront trouvé, ils s'allieront avec MIPS qui entre temps aura poussé Clutter et Python en travaillant avec le format RPM...
# Un petit mot sur Quick
Posté par Philippe F (site web personnel) . Évalué à 4.
J'ai pas eu l'occasion de jouer avec l'interface mais si j'ai bien compris les démos et les exemples, ça permet de décrire une interface graphique de façon déclarative avec les notions suivantes :
- description de tous les items de l'interface, leur placement respectifs, leur propriété de base. Jusque là, rien d'extraordinaire.
- description d'un automate d'état, qui décrit les transitions avec pour chaque transition, l'évènement qui la déclenche, une condition de validation, les propriétés des objets à faire changer, signaux éventuels à émettre et des algo pour rendre les transitions fluides.
Ça permet vraiment de décrire des effets complexes de façon déclarative, c'est vraiment très fort. Pour le mobiles, c'est parfait, toutes les transitions à la iPhone se feront hyper simplement.
On peut trouver pas mal d'exemples et de video en cherchant Qt Quick sur google on regardant le blog de Qt. Quelques une comme ça :
http://jryannel.wordpress.com/ pour des mini exemples concrets
http://labs.qt.nokia.com/2009/05/13/qt-declarative-ui/
[^] # Re: Un petit mot sur Quick
Posté par barmic . Évalué à 2.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Un petit mot sur Quick
Posté par Infernal Quack (site web personnel) . Évalué à 2.
L'association LinuxFr ne saurait être tenue responsable des propos légalement repréhensibles ou faisant allusion à l'évêque de Rome, au chef de l'Église catholique romaine ou au chef temporel de l'État du Vatican et se trouvant dans ce commentaire
# Webkit
Posté par gnumdk (site web personnel) . Évalué à 4.
# Coquille
Posté par Spack . Évalué à 3.
[^] # Re: Coquille
Posté par Xavier Teyssier (site web personnel) . Évalué à 2.
# Clutter
Posté par alberthier (site web personnel) . Évalué à 1.
Clutter permet aussi de décrire des scènes sous forme de script:
http://docs.clutter-project.org/docs/clutter/stable/ClutterS(...)
[^] # Re: Clutter
Posté par Anonyme . Évalué à 1.
http://docs.enlightenment.org/auto/edje/examples.html
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.