tag:linuxfr.org,2005:/users/sanao/newsLinuxFr.org : les dépêches de sanao2013-01-06T23:37:28+01:00/favicon.pngtag:linuxfr.org,2005:News/293612012-12-22T09:39:00+01:002012-12-22T09:39:00+01:00Sortie de Qt 5.0Licence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<div><p>Qt 5.0 est sorti. C'est une évolution majeure de l'une des bibliothèques C++ les plus utilisées et certainement celle qui couvre le plus de besoins.</p>
<p>Bien qu'étant une version majeure, elle ne casse pas aussi violemment la compatibilité que lors du passage de Qt3 à Qt4. La liste des améliorations et les changements en profondeur dans l'organisation de Qt5 rendent néanmoins pertinent ce changement de version.</p>
<p>Le projet libre le plus emblématique exploitant la puissance de Qt est KDE, mais bien d'autres applications l'utilisent, qu'elles soient libres (VLC, Scribus, Avidemux, etc.) ou propriétaires (Google Earth, Opera, la Freebox V6, Skype, etc.).<br /><img src="//img.linuxfr.org/img/687474703a2f2f71742e64696769612e636f6d2f446f63756d656e74732f51745f6d61737465725f6c6f676f5f434d594b5f6e6f6261636b2e676966/Qt_master_logo_CMYK_noback.gif" alt="Qt Logo" title="Source : http://qt.digia.com/Documents/Qt_master_logo_CMYK_noback.gif" /></p>
<p>
<em>Merci à tous les contributeurs de cette dépêche : Nÿco, reno, Eric Bénard, ZeroHeure, Florent Zara, Philippe Fremy, olivierweb, detail_pratique, Raoul Volfoni, Laurent Pointal, Gof, baud123, ecyrbe, liberforce, Emmanuel C, Yves Bourguignon, tankey, Xavier Claude, Jean Gabes, Alexandre P, Arcaik, jeberger, Olivier, El Titi, Trollgouin, Benoît, RbN et jay.</em>
</p></div><ul><li>lien nᵒ 1 : <a title="http://blog.qt.digia.com/blog/2012/12/19/qt-5-0/" hreflang="en" href="https://linuxfr.org/redirect/76245">Annonce sur le Qt blog chez Digia</a></li><li>lien nᵒ 2 : <a title="http://qt-project.org/wiki/Qt-5Features" hreflang="en" href="https://linuxfr.org/redirect/76246">Fonctionnalités Qt 5</a></li><li>lien nᵒ 3 : <a title="http://qt-project.org/wiki/Building-Qt-5-from-Git-French" hreflang="fr" href="https://linuxfr.org/redirect/83813">Compiler Qt 5 depuis Git</a></li><li>lien nᵒ 4 : <a title="http://qt-project.org/doc/qt-5.0/qtdoc/qt5-intro.html" hreflang="en" href="https://linuxfr.org/redirect/84597">Quoi de neuf dans Qt5 (avec des liens)?</a></li><li>lien nᵒ 5 : <a title="http://qt-project.org/wiki/Qt500KnownIssues" hreflang="en" href="https://linuxfr.org/redirect/84598">Problèmes connus</a></li></ul><div><h2 id="sommaire">Sommaire</h2>
<ul><li>
<a href="#toc_0">Qt, bien plus qu'une bibliothèque graphique</a>
</li>
<li>
<a href="#toc_1">Changement dans l'organisation</a>
</li>
<li>
<a href="#toc_2">Un développement ouvert</a>
<ul><li>
<a href="#toc_3">Modularisation</a>
</li>
</ul></li>
<li>
<a href="#toc_4">Compatibilité source</a>
</li>
<li>
<a href="#toc_5">QPA par défaut</a>
</li>
<li>
<a href="#toc_6">Ajouts</a>
<ul><li>
<a href="#toc_7">QML et QtQuick 2.0</a>
</li>
<li>
<a href="#toc_8">Vérification des signaux/slots à la compilation</a>
</li>
<li>
<a href="#toc_9">QML, Webkit et Webkit2</a>
</li>
</ul></li>
<li>
<a href="#toc_10">Et pour la suite</a>
</li>
</ul><h2 id="toc_0">Qt, bien plus qu'une bibliothèque graphique</h2>
<p>On ne le répètera jamais assez : Qt est bien plus qu'une simple bibliothèque graphique multiplateforme. Elle fournit :</p>
<ul><li>une abstraction de certains types et structures de données</li>
<li>des composants graphiques</li>
<li>l'accès et la manipulation de bases de données</li>
<li>des moyens de communication via un réseau IP</li>
<li>des fonctionnalités multimédia (audio, vidéo, caméra, microphone)</li>
<li>la possibilité de lire et écrire du XML, du SVG, du JSON ou encore de manipuler et afficher du HTML</li>
<li>l'affichage et l'écriture de fichiers graphiques et de documents au format ODF</li>
<li>une gestion fine des traductions</li>
<li>les signaux et slots qui sont une implémentation du patron de conception observateur</li>
<li>etc.</li>
</ul><p>L'aspect multiplateforme va au-delà du simple trio Windows, Mac OS X et Linux/X11 sur x86. Wayland – le nouveau protocole graphique visant à remplacer X11 – est géré, y compris sur ARMv7. Cela s'explique par une orientation vers le monde de l'embarqué qui s'est sérieusement accélérée depuis le rachat de Trolltech (l'entreprise à l'origine de Qt) par Nokia. Le support d'X11 est modifié pour passer d'<a href="http://fr.wikipedia.org/wiki/Xlib" title="Définition Wikipédia">Xlib</a> à <a href="http://fr.wikipedia.org/wiki/XCB" title="Définition Wikipédia">XCB</a>.</p>
<h2 id="toc_1">Changement dans l'organisation</h2>
<p>Depuis le 9 août 2012 <a href="http://en.wikipedia.org/wiki/Digia" title="Définition Wikipédia">Digia</a> est propriétaire de l'ensemble de la bibliothèque. Digia est cette entreprise finlandaise qui disposait déjà du droit exclusif de vente de licence commerciale et qui s'occupait du support payant. À l'époque, Nokia était toujours le propriétaire de l'ensemble du code et choisissait son évolution. Pour rappel, Nokia a racheté Trolltech (le premier éditeur de Qt) en 2008 et a cédé la partie commerciale à Digia en 2011.</p>
<p>Digia a annoncé dans un communiqué de presse vouloir renforcer l'équipe de développement, afin de porter rapidement Qt sur Android, iOS et Windows 8 (la plateforme mobile), tout en précisant maintenir son attention sur la version Bureau. L'entreprise reprendrait 125 développeurs de l'équipe R&D que Nokia consacrait à Qt.</p>
<p>Le développement de la bibliothèque restera ouvert puisque « Digia encourage tous les membres de l'écosystème actuel à continuer à travailler à l'amélioration de Qt […] ». L'entreprise précise que le plan d'affaire à double licence sera préservé.</p>
<p>Du côté des autres acteurs économiques liés à Qt, on peut signaler la société <a href="http://en.wikipedia.org/wiki/Jolla" title="Définition Wikipédia">Jolla</a>, composée d'anciens du projet <a href="http://fr.wikipedia.org/wiki/MeeGo" title="Définition Wikipédia">MeeGo</a> de Nokia (cf. le nokia N9), qui a repris le flambeau de Qt embarqué sur smartphone et qui projette de sortir prochainement du matériel sous <a href="http://en.wikipedia.org/wiki/Sailfish_OS" title="Définition Wikipédia">Sailfish OS</a> (ex Meego/Mer avec une UI propriétaire en plus). Mais aussi <a href="http://fr.wikipedia.org/wiki/Research_In_Motion" title="Définition Wikipédia">RIM</a> qui utilise Qt pour l'interface du futur <a href="http://devblog.blackberry.com/2012/11/porting-qt-apps-to-blackberry-10/">blackberry 10</a>.</p>
<h2 id="toc_2">Un développement ouvert</h2>
<p>Suite aux évolutions sus-citées, Digia continue de soutenir le site communautaire <a href="http://qt-project.org/">http://qt-project.org/</a> sur lequel on peut trouver différentes règles concernant l'ajout de code à Qt. Le code source est pleinement disponible et géré avec Git (git://gitorious.org/qt/qt.git). Un système élaboré de relecture de code a été mis en place utilisant <a href="http://code.google.com/p/gerrit/">Gerrit</a>.</p>
<p>Le développement est donc ouvert à toutes les bonnes volontés, avec un accès au code facilité (outils classiques) et une politique d'inclusion publique.</p>
<h3 id="toc_3">Modularisation</h3>
<p>Qt devenant de plus en plus gros en nombre de fonctionnalités, le code source a été réparti dans plusieurs dépôts git de manière à faciliter le développement. Ainsi, le code de QtQuick ou celui de QtWebkit ne font plus partie du dépôt git contenant les bibliothèques de base.</p>
<h2 id="toc_4">Compatibilité source</h2>
<p>Un des objectifs de Qt 5 est de conserver au maximum la compatibilité source avec Qt 4.x. Le portage d'application devrait donc être simple et consister en une simple recompilation. </p>
<h2 id="toc_5">QPA par défaut</h2>
<p>QPA (Qt Platform Abstraction) avait vu le jour avec Qt 4.8 (voir la <a href="http://linuxfr.org/news/qt-48-est-sorti#toc_1">dépêche sur le sujet</a>). C'est une couche d'abstraction qui facilite le port de Qt sur différentes plateformes via des plugins en lieu et place de <code>#ifdef</code> dans le code. QPA est maintenant utilisé par défaut sur toutes les plateformes y compris Windows, Mac OS X et Linux.</p>
<p>Sous Linux, c'est <a href="http://fr.wikipedia.org/wiki/XCB" title="Définition Wikipédia">XCB</a> qui est maintenant utilisé par défaut pour communiquer avec le serveur X11. Il existe aussi un plugin pour <a href="http://fr.wikipedia.org/wiki/Wayland" title="Définition Wikipédia">Wayland</a> qui est le système d'affichage recommandé pour l'embarqué.</p>
<p>QPA est aussi la fondation des ports vers iOS et Android. Ces derniers seront officiellement supportés par Digia à partir de Qt 5.1.</p>
<h2 id="toc_6">Ajouts</h2>
<ul><li>gestion du DNS (SRV, TXT et MX) au lieu de la seule résolution de nom de Qt4</li>
<li>lecteur et générateur JSON </li>
<li>gestion des types MIME (sur extension et sur contenu, même en mémoire)</li>
<li>prise en charge des souris de joueur (nombre de boutons gérés en fonction de l'interface graphique, mais jusqu'à 27 boutons sous X)</li>
<li>utilisation des nouveautés de <a href="http://woboq.com/blog/cpp11-in-qt5.html">C++11</a> quand le compilateur le permet.</li>
</ul><h3 id="toc_7">QML et QtQuick 2.0</h3>
<p>Une des principales évolutions de Qt est QtQuick. Pour rappel, QML, qui avait été introduit dans Qt 4.7, est un nouveau langage de description d'interface pour Qt, utilisant Javascript. QtQuick est le nom pour l'ensemble des technologies autour de QML.</p>
<p>QtQuick 2.0 est un changement majeur. Il n'est pas compatible avec QtQuick 1.x, c'est pourquoi un module de compatibilité existe pour que les applications écrites avec Qt 4.x utilisant QML continuent de fonctionner.</p>
<p>Le principal changement de QtQuick 2.0 est la réécriture du moteur d'affichage utilisant un <a href="http://fr.wikipedia.org/wiki/Graphe de scène" title="Définition Wikipédia">Graphe de scène</a> basé sur OpenGL. Le rendu est maintenant effectué dans un thread séparé, permettant de rendre de manière fluide des animations complexes.</p>
<p>Le moteur de JavaScript de QML a aussi été changé. V8 (le moteur JavaScript écrit par Google) est utilisé en lieu et place de QtScript (qui utilise JavaScriptCore). La raison du changement est une meilleur stabilité de l'API de V8 au cours du temps.</p>
<p>Le développement de QML est annoncé comme largement prioritaire sur les classiques QWidget (incompatibles avec le graphe de scène de QML). Le système à base de QWidget est considéré comme "déjà poussé jusqu'au bout" et ne recevra plus que des corrections de bugs (source: <a href="http://lists.qt.nokia.com/public/qt5-feedback/2011-October/001622.html">ML qt5-feedback</a> ).</p>
<h3 id="toc_8">Vérification des signaux/slots à la compilation</h3>
<p>Une <a href="http://woboq.com/blog/new-signals-slots-syntax-in-qt5.html">nouvelle syntaxe</a> fait son apparition pour l'utilisation des signaux et des slots. En Qt4, la syntaxe est la suivante :</p>
<pre>
<code class="c++"><span class="n">connect</span><span class="p">(</span><span class="n">sender</span><span class="p">,</span> <span class="n">SIGNAL</span><span class="p">(</span><span class="n">valueChanged</span><span class="p">(</span><span class="n">QString</span><span class="p">,</span><span class="n">QString</span><span class="p">)),</span>
<span class="n">receiver</span><span class="p">,</span> <span class="n">SLOT</span><span class="p">(</span><span class="n">updateValue</span><span class="p">(</span><span class="n">QString</span><span class="p">))</span> <span class="p">);</span>
</code>
</pre>
<p>Le problème est qu'il n'y a aucune vérification sur l'existence des fonctions données à la compilation : ce sera uniquement à l'exécution que cela posera problème. De plus, ce n'est pas compatible avec l'utilisation de <code>typedef</code> et de <code>namespace</code>, donc si vous faites une faute de frappe, c'est foutu. Avec Qt5, une nouvelle syntaxe apparaît ; elle ne remplace pas l'ancienne mais s'ajoute à celle-ci, donc pas besoin de changer le code actuel. On peut donc écrire :</p>
<pre>
<code class="c++"><span class="n">connect</span><span class="p">(</span><span class="n">sender</span><span class="p">,</span> <span class="o">&</span><span class="n">Sender</span><span class="o">::</span><span class="n">valueChanged</span><span class="p">,</span>
<span class="n">receiver</span><span class="p">,</span> <span class="o">&</span><span class="n">Receiver</span><span class="o">::</span><span class="n">updateValue</span> <span class="p">);</span>
</code>
</pre>
<p>Cette syntaxe permet donc au compilateur de lever une erreur si la fonction n'existe pas mais fonctionne aussi avec <code>typedef</code> et <code>namespace</code>. De plus, il est possible d'avoir une conversion de type automatique. Par exemple, un signal envoie un <code>QString</code> et le slot récupère un <code>QVariant</code>. Il est aussi possible d'utiliser n'importe quelle fonction comme slot, évitant ainsi le besoin de le déclarer explicitement comme auparavant. Il est même possible d'utiliser une fonction lambda comme slot, facilitant ainsi l'usage de la programmation asynchrone.</p>
<pre>
<code class="c++"><span class="n">connect</span><span class="p">(</span><span class="n">sender</span><span class="p">,</span> <span class="o">&</span><span class="n">Sender</span><span class="o">::</span><span class="n">valueChanged</span><span class="p">,</span> <span class="p">[</span><span class="o">=</span><span class="p">](</span><span class="k">const</span> <span class="n">QString</span> <span class="o">&</span><span class="n">newValue</span><span class="p">)</span> <span class="p">{</span>
<span class="n">receiver</span><span class="o">-></span><span class="n">updateValue</span><span class="p">(</span><span class="s">"senderValue"</span><span class="p">,</span> <span class="n">newValue</span><span class="p">);</span>
<span class="p">});</span>
</code>
</pre>
<p>D'après <a href="http://pokecraft.first-world.info/wiki/Benchmark_for_conception">des tests</a> réalisés avec un <a href="https://github.com/alphaonex86/QtSignalsSlotsBenchmark">benchmark d'alphaonex86</a>, le système de messages (signaux/slots) a gagné en performance avec Qt5. On gagne en rapidité pour l'établissement de nouvelles connexions, ainsi que pour l'envoi de message.</p>
<h3 id="toc_9">QML, Webkit et Webkit2</h3>
<p>Webkit2 arrive enfin (l'API Webkit2 est sortie en 2010 !), avec un module QML. En fait Qt5 propose Webkit et Webkit2, aux API incompatibles. Outre les nouveautés d'HTML5, « cette version inclut directement dans l'API webkit de base un modèle similaire à Chrome, sépare le contenu de l'UI dans des processus séparés, et peut placer divers contenus dans divers processus » (tiré de ce <a href="http://linuxfr.org/news/rekonq-1-0#comment-1372226">post explicatif d'Enjolras</a>). Bref, les navigateurs en Qt vont devenir de sérieux concurrents de Safari et Chrome.</p>
<h2 id="toc_10">Et pour la suite</h2>
<p>Le développement de Qt devrait suivre un processus basé sur une version à peu près tous les 6 mois. Les fonctionnalités sont développées dans des branches, et ce qui est considéré comme stable au moment du gel sera inclus dans la prochaine version mineure. Si tout va bien, 5.1 pourrait déjà sortir en <a href="http://lists.qt-project.org/pipermail/development/2012-December/008830.html">avril</a>.</p>
<p>Sont au programme, une plus grande stabilité et l'ajout de modules comme Qt3D et QtSensors qui n'étaient pas prêts pour Qt 5.0.</p>
<p><a href="http://doc-snapshot.qt-project.org/qt3d-1.0/index.html">Qt3D</a> ajoutera la gestion d'objets 3D, des textures, des caméras, la possibilité de scripter du code 3D en QML et le chargement de fichiers .obj et .3ds.</p>
<p>Comme vu plus haut, iOS et Android arriveront comme nouvelle plateforme.</p>
<p>Les <a href="http://blog.qt.digia.com/blog/2012/06/06/desktop-components-for-qt-5/">Components pour desktop</a> sont également en cours de développement. Ce sont des éléments QML incluant tout ce qu'il faut pour faire des applications de bureau en QML.</p></div><div><a href="https://linuxfr.org/news/sortie-de-qt-5-0.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/90168/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/sortie-de-qt-5-0#comments">ouvrir dans le navigateur</a>
</p>
sanaodetail_pratiqueGofYves BourguignonTrollgouinNÿcoEmmanuel COlivierEl TitiZeroHeureliberforceBenoît Sibaudclaudexbaud123RbNEricjayrenoAnonymeBenoîtRaoul VolfoniPhilippe FJean GabesecyrbelolopolivierwebAlexandre Pbubar🦥Florent Zarajebergerhttps://linuxfr.org/nodes/90168/comments.atomtag:linuxfr.org,2005:News/274362010-10-01T02:22:32+02:002010-10-01T02:22:32+02:00WebP, le format d'image libre de Google<div>Après le WebM, Google s'attaque au format d'image et introduit le <a href="http://fr.wikipedia.org/wiki/WebP" title="Définition Wikipédia">WebP</a>, qui produirait des fichiers 39 % plus petits en taille que les autres formats que l'on rencontre sur le Web. Le WebP est particulièrement performant avec des images de petites tailles, que l'on rencontre surtout lors des consultations de sites Web.
<br />
<br />
Ce format utilise la technique de compression utilisée pour les images clés du <a href="http://linuxfr.org/2010/04/14/26727.html">VP8</a> (le codec vidéo du <a href="http://fr.wikipedia.org/wiki/WebM" title="Définition Wikipédia">WebM</a>) et comme conteneur un format dérivé des spécifications <a href="http://fr.wikipedia.org/wiki/RIFF" title="Définition Wikipédia">RIFF</a> qui autorise les métadonnées.
<br />
<br />
Pourquoi créer un nouveau format d'image ? Parce que les formats actuels datent d'au moins 15 ans et, depuis, des progrès ont été accomplis. Il y a bien eu JPEG 2000, mais il n'a jamais vraiment percé. En outre, lors de la consultation d'une page Web, Google estime qu'en moyenne, 65% des données sont pour les images. Améliorer le taux de compression améliore nécessairement le temps de chargement (et d'affichage) des pages.
<br />
<br />
Le support de l'affichage du WebP dans les navigateurs est pour l'instant sous la forme d'un patch pour WebKit. Mais il y a des chances qu'il arrive rapidement pour Firefox et Opera. Car tout cela est, comme pour le VP8, libre de droit.</div><ul><li>lien nᵒ 1 : <a title="http://code.google.com/speed/webp/" hreflang="en" href="https://linuxfr.org/redirect/69284">Le site officiel avec les specs</a></li><li>lien nᵒ 2 : <a title="http://fr.wikipedia.org/wiki/WebP" hreflang="fr" href="https://linuxfr.org/redirect/69285">L'article Wikipédia fait avec amour</a></li><li>lien nᵒ 3 : <a title="http://code.google.com/speed/webp/docs/c_study.html" hreflang="en" href="https://linuxfr.org/redirect/69286">L'étude comparative par rapport à d'autres formats</a></li></ul><div></div><div><a href="https://linuxfr.org/news/webp-le-format-dimage-libre-de-google.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/26347/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/webp-le-format-dimage-libre-de-google#comments">ouvrir dans le navigateur</a>
</p>
sanaohttps://linuxfr.org/nodes/26347/comments.atomtag:linuxfr.org,2005:News/274032010-09-22T01:52:00+02:002010-09-22T01:52:00+02:00Sortie de Qt 4.7<div>Qt 4.7, la bibliothèque C++ libre (GNU LGPL) et multiplateforme de Nokia vient de sortir. Le principal ajout de cette version est Quick (pour Qt UI Creation Kit), qui facilite la réalisation d'interfaces utilisateurs plus dynamiques. Cette nouvelle façon de réaliser les interfaces devrait principalement intéresser l'embarqué, même si elle ne se limite pas à cela (les technologies Quick sont notamment utilisées dans les Plasmoïdes du projet KDE).
<br />
<br />
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.
<br />
<br />
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.</div><ul><li>lien nᵒ 1 : <a title="http://doc.qt.nokia.com/4.7/index.html" hreflang="en" href="https://linuxfr.org/redirect/69177">La documentation officielle</a></li><li>lien nᵒ 2 : <a title="http://doc.qt.nokia.com/4.7/qt4-7-intro.html" hreflang="en" href="https://linuxfr.org/redirect/69178">Les nouveautés de cette version</a></li><li>lien nᵒ 3 : <a title="http://qt.nokia.com/developer/changes/changes-4.7.0" hreflang="en" href="https://linuxfr.org/redirect/69179">Le journal des modifications</a></li><li>lien nᵒ 4 : <a title="http://qt.nokia.com/products/appdev/developer-tools/developer-tools" hreflang="en" href="https://linuxfr.org/redirect/69180">Qt Creator</a></li><li>lien nᵒ 5 : <a title="http://fr.wikipedia.org/wiki/Qt" hreflang="fr" href="https://linuxfr.org/redirect/69181">Qt sur Wikipédia</a></li><li>lien nᵒ 6 : <a title="http://qt.nokia.com/" hreflang="en" href="https://linuxfr.org/redirect/69182">Site de la bibliothèque Qt</a></li></ul><div><strong>Qt, c'est quoi?</strong>
<br />
<br />
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) :
<br />
<ul><li>du réseau (QtNetwork)
<br />
</li><li>de la manipulation de documents XML (QtXml, QtXmlPatterns et QtSvg) ; un moteur de rendu HTML basé sur WebKit est également intégré (QtWebKit)
<br />
</li><li>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
<br />
</li><li>du multimédia via Phonon (Phonon module) développé au sein de KDE
<br />
</li><li>du script via QtScript (QtScript)
<br />
</li><li>de la 3D via OpenGL (QtOpenGL)
<br />
</li><li>de l'internationalisation via un outil pour les traducteurs : Qt Linguist (internationalisation)
<br />
</li><li>de la programmation concurrente via des processus légers (threads) ou un framework généraliste QtConcurrent (threads QtConcurrent)
<br />
</li><li>des tests unitaires (QtTest)
<br />
</li><li>de créer des interfaces graphiques pour les non-programmeurs via l'excellent Qt Designer (Designer manual)
<br />
</li><li>...</li></ul>Un des points forts (mais pour certains c'est une critique) de Qt est le MOC, un préprocesseur de code C++ qui permet à l'aide de macros d'étendre le langage C++ en fournissant notamment des mécanismes d'introspection et surtout une architecture de signaux (des évènements) et slots (des actions à réaliser suite à ces évènements) facilitant grandement le dialogue entre les différents objets C++ d'une application.
<br />
<br />
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.
<br />
<br />
<strong>Quick</strong>
<br />
<br />
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.
<br />
<br />
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.
<br />
<br />
<strong>Autres choses dans Qt 4.7</strong>
<br />
<br />
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.
<br />
<br />
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.
<br />
<br />
La version Mac de Qt utilise maintenant par défaut l'API Cocoa en lieu et place de Carbon. Cette dernière <a href="http://labs.trolltech.com/blogs/2010/05/06/qt-470-beta1/">ne sera plus prise en charge dans Qt 4.8</a>.
<br />
<br />
<strong>QtCreator</strong>
<br />
<br />
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.
<br />
<br />
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 <a href="http://get.qt.nokia.com/qtcreator/snapshots/">les dernières versions de Qt Creator</a>.
<br />
<br />
<strong>QtMobility</strong>
<br />
<br />
<a href="https://qt.nokia.com/products/appdev/add-on-products/catalog/4/new-qt-apis/mobility">Qt Mobility</a> est une collection de classes destinées principalement (mais pas que) aux smartphones et couvrent notamment les cas d'utilisation suivants :
<br />
<ul><li>gestion de contacts
<br />
</li><li>recherche de services
<br />
</li><li>multimédia
<br />
</li><li>envoi et réception de messages
<br />
</li><li>géolocalisation
<br />
</li><li>...</li></ul>Qt Mobility avait été annoncé du temps de la sortie de Qt 4.6 et Nokia avait communiqué durant l'élaboration de l'API pour avoir des retours de la communauté. La version 1.0.2 est maintenant disponible sous <a href="http://labs.trolltech.com/blogs/2010/04/27/qt-mobility-100-package/">forme d'extension</a> et sera certainement intégrée à la prochaine version majeure de Qt.
<br />
<br />
La <a href="http://labs.trolltech.com/blogs/2010/05/18/qtmultimedia-in-action-a-spectrum-analyser/">partie multimédia</a> reste au stade de la bêta, même si l'<a href="http://labs.trolltech.com/blogs/2010/05/10/low-level-audio-processing-with-qtmultimedia/">API</a> est assez stable et qu'un manque de Qt concernant l'acquisition audio est comblé.
<br />
<br />
<strong>QtOpenCL et accélération matérielle</strong>
<br />
<br />
<a href="http://fr.wikipedia.org/wiki/OpenCL">OpenCL</a> est une API du Khronos Group (qui est notamment en charge de l'évolution d'<a href="http://fr.wikipedia.org/wiki/OpenGL">OpenGL</a>) et initialement développée par Apple, visant à permettre d'utiliser la puissance de calcul offerte par les <a href="http://fr.wikipedia.org/wiki/Processeur_graphique">GPU</a> (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 <a href="http://labs.trolltech.com/blogs/2010/04/07/using-opencl-with-qt/">OpenCL au sein d'un projet Qt</a>, 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.
<br />
<br />
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 <a href="http://labs.trolltech.com/blogs/2010/05/17/qtwebkit-now-accelerates-css-animations-3d-transforms/">Qt Webkit pourront en profiter dans le futur</a>. Ces travaux sont à rapprocher de ceux de Google sur <a href="http://blog.chromium.org/2010/09/web-graphics-past-present-and-future.html">Chrome</a>, donc ceux sur <a href="http://blog.chromium.org/2010/09/unleashing-gpu-acceleration-on-web.html">l'accélération par GPU</a>.
<br />
<br />
<strong>Plus de modularité pour Qt 4.8</strong>
<br />
<br />
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 <a href="http://labs.trolltech.com/blogs/2010/05/06/qt-47-scope-change-regarding-qt-multimedia/">posé des problèmes</a> 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.
<br />
<br />
<strong>MeeGo</strong>
<br />
<br />
<a href="http://meego.com/">MeeGo</a> 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 <a href="http://meego.com/developers/meego-api">environnement de développement</a> Qt. C'est le résultat de la fusion de Maemo (projet de Nokia) et Moblin (projet d'Intel).
<br />
<br />
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 <a href="http://www.pcinpact.com/actu/news/59286-nokia-pdg-stephen-elop-microsoft.htm">arrivée d'un transfuge de Microsoft</a>).
<br />
<br />
MeeGo semble assez ouvert pour permettre la mise au point de produits utilisant plusieurs "stores". Ainsi, la <a href="http://www.frandroid.com/36175/wetab-une-tablette-meego-qui-fera-tourner-les-applications-android/">tablette WeTab</a> utilisant MeeGo est compatible (entre autres) avec l'Android Market de Google.
<br />
<br />
Le rapprochement entre Nokia et Intel est important, à tel point qu'ils se sont mis ensemble pour ouvrir un <a href="http://newsroom.intel.com/community/intel_newsroom/blog/2010/08/23/intel-and-nokia-create-first-joint-laboratory">laboratoire de recherche sur les interfaces utilisateurs</a>.
<br />
<br />
<strong>SDK et contributions</strong>
<br />
<br />
Après ces présentations, si vous voulez tester Qt et son environnement de développement, c'est <a href="http://qt.nokia.com/downloads">ici que cela se passe</a>.
<br />
<br />
Pour contribuer aux différents projets liés à Qt, <a href="http://qt.gitorious.org">Gitorious est votre ami</a> si vous êtes développeurs et pour tout le reste, il y a le <a href="http://bugreports.qt.nokia.com">gestionnaire de bugs</a>.</div><div><a href="https://linuxfr.org/news/sortie-de-qt-47.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/26317/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/sortie-de-qt-47#comments">ouvrir dans le navigateur</a>
</p>
sanaohttps://linuxfr.org/nodes/26317/comments.atomtag:linuxfr.org,2005:News/261982009-12-01T19:02:25+01:002009-12-01T19:02:25+01:00Sortie de Qt 4.6<div>Qt 4.6, la bibliothèque C++ libre (GNU LGPL) et multi plates-formes <a href="http://labs.trolltech.com/blogs/2009/12/01/qt-460-released-early-due-to-good-behaviour/">vient de sortir</a>. Comme à son habitude, à côté des optimisations plus ou moins importantes (voire spectaculaires en ce qui concerne QtScript), deux frameworks apparaissent dans le but de résoudre différents cas d'utilisations de cette bibliothèque multi-usages.
<br />
<br />
<a href="http://fr.wikipedia.org/wiki/Symbian_OS">Symbian</a> fait son entrée aux côtés des principales plate-formes supportées officiellement que sontLinux, Mac OS X, Windows et Windows CE. Symbian est un système d'exploitation pour smartphones détenu par Nokia (qui est également le propriétaire de <a href="http://fr.wikipedia.org/wiki/Qt" title="Définition Wikipédia">Qt</a> depuis janvier 2008). La prise en charge de Symbian se fait au travers du framework S60.</div><ul><li>lien nᵒ 1 : <a title="http://doc.trolltech.com/4.6/" hreflang="en" href="https://linuxfr.org/redirect/64634">La documentation officielle</a></li><li>lien nᵒ 2 : <a title="http://doc.trolltech.com/4.6/qt4-6-intro.html" hreflang="en" href="https://linuxfr.org/redirect/64635">Les nouveautés de cette version</a></li><li>lien nᵒ 3 : <a title="http://qt.nokia.com/developer/changes/changes-4.6.0" hreflang="en" href="https://linuxfr.org/redirect/64636">Le journal des modifications</a></li><li>lien nᵒ 4 : <a title="http://qt.nokia.com/products/appdev/developer-tools/developer-tools" hreflang="en" href="https://linuxfr.org/redirect/64637">Qt Creator</a></li><li>lien nᵒ 5 : <a title="http://fr.wikipedia.org/wiki/Qt" hreflang="fr" href="https://linuxfr.org/redirect/64638">Qt sur Wikipédia</a></li><li>lien nᵒ 6 : <a title="http://qt.nokia.com/" hreflang="en" href="https://linuxfr.org/redirect/64669">Qt</a></li></ul><div><b>Qt, c'est quoi?</b>
<br />
Si un seul adjectif devait désigner Qt, c'est bien celui de vaste. Cette bibliothèque permet bien plus que de simplement développer des applications graphiques portables et permet également de faire (liste non exhaustive) :
<br />
<ul><li>du réseau (<a href="http://doc.trolltech.com/4.6/qtnetwork.html">QtNetwork</a>)
<br />
</li><li>de la manipulation de documents XML (<a href="http://doc.trolltech.com/4.6/qtxml.html">QtXml</a>, <a href="http://doc.trolltech.com/4.6/qtxmlpatterns.html">QtXmlPatterns</a> et <a href="http://doc.trolltech.com/4.6/qtsvg.html">QtSvg</a>) ; un moteur de rendu HTML basé sur WebKit est également intégré (<a href="http://doc.trolltech.com/4.6/qtwebkit.html">QtWebKit</a>)
<br />
</li><li>de la base de données relationnelle (<a href="http://doc.trolltech.com/4.6/qtsql.html">QtSql</a>) (avec un support natif des principales bases de données comme DB2, MySQL, Oracle, ODBC, PostgreSQL ou SQLite
<br />
</li><li>du multimédia via Phonon (<a href="http://doc.trolltech.com/4.6/phonon-module.html">Phonon module</a>) développé au sein de KDE
<br />
</li><li>du script via QtScript (<a href="http://doc.trolltech.com/4.6/qtscript.html">QtScript</a>)
<br />
</li><li>de la 3D via OpenGL (<a href="http://doc.trolltech.com/4.6/qtopengl.html">QtOpenGL</a>)
<br />
</li><li>de l'internationalisation via un outil pour les traducteurs : Qt Linguist (<a href="http://doc.trolltech.com/4.6/internationalization.html">internationalization</a>)
<br />
</li><li>de la programmation concurrente via des processus légers (<a href="http://doc.trolltech.com/4.6/threads.html">threads</a>) ou un framework généraliste QtConcurrent (<a href="http://doc.trolltech.com/4.6/threads-qtconcurrent.html">threads QtConcurrent</a>)
<br />
</li><li>des tests unitaires (<a href="http://doc.trolltech.com/4.6/qttest.html">QtTest</a>)
<br />
</li><li>de créer des interfaces graphiques pour les non-programmeurs via l'excellent Qt Designer (<a href="http://doc.trolltech.com/4.6/designer-manual.html">Designer manual</a>)
<br />
</li><li>...</li></ul>Un des points forts (mais pour certains c'est une critique) de Qt est le <abbr title="Meta Object Compiler">MOC</abbr>, un préprocesseur de code C++ qui permet à l'aide de macros d'étendre le langage C++ en fournissant des mécanismes d'introspection et surtout une architecture de <a href="http://fr.wikipedia.org/wiki/Signaux_et_slots">signaux (des évènements) et slots (des actions à réaliser suite à ces évènements)</a> facilitant grandement le dialogue entre les différents objets C++ d'une application.
<br />
<br />
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.
<br />
<br />
<b>Cette version, elle apporte quoi de nouveau ?</b>
<br />
Passons maintenant aux nouveautés de cette version :
<br />
<br />
Deux frameworks développés en interne depuis plusieurs mois et dont nous avons eu des aperçus via <a href="http://labs.trolltech.com/page/Main_Page">les blogs des développeurs de Qt</a> apparaissent :
<br />
<ul><li><a href="http://doc.trolltech.com/4.6/animation-overview.html">Animation</a>, issu du projet Kinetic, il permet de créer des animations d'éléments graphiques et de jouer sur leurs propriétés
<br />
</li><li><a href="http://doc.trolltech.com/4.6/statemachine-api.html">State Machine</a>, qui utilise la sémantique des <a href="http://fr.wikipedia.org/wiki/Machine_%C3%A0_%C3%A9tats_finis">machines à état</a> State Chart XML promue par le W3C. Ce framework simplifie la gestion des changements d'état (comme un bouton qui passe de non cliqué à cliqué) et l'action à réaliser qui suit.</li></ul>Lorsque ces deux frameworks sont utilisés de concert, la réalisation d'animation est grandement simplifiée.
<br />
<br />
L'embarqué étant le secteur principal d'activité de Nokia, Qt se devait de fournir des outils pour gérer les évènements multi-points (comme sur l'iPhone pour donner une idée) et la <a href="http://doc.trolltech.com/4.6/gestures-overview.html">gestuelle</a>, c'est chose faite avec l'apparition des classes <a href="http://doc.qt.nokia.com/4.6/qtouchevent.html">QTouchEvent</a> et <a href="http://doc.qt.nokia.com/4.6/qgestureevent.html">QGestureEvent</a>.
<br />
<br />
La gestion d'XML est encore développée et après la gestion de XPath, XQuery et XSLT, vient s'ajouter dans cette version <a href="http://doc.qt.nokia.com/4.6/qxmlschema.html">celui des Schema XML</a> du W3C, permettant de valider un document XML. La manipulation d'éléments d'une page HTML est également facilitée via l'<a href="http://doc.qt.nokia.com/4.6/qwebelement.html">ajout de la classe QWebElement</a> qui permet, entre autre, de sélectionner des éléments via les sélecteurs de CSS2.
<br />
<br />
Le développement du multimédia continue comme annoncé. Avec Qt 4.6, un nouveau module est ajouté, <a href="http://doc.qt.nokia.com/4.6/qtmultimedia.html">QtMultimedia</a>, qui fournit un accès bas niveau au système audio, mais également vidéo via l'arrivée de plusieurs classes représentant des images d'un flux vidéo.
<br />
<br />
Concernant WebKit, la version est mise à jour depuis le tronc et un remplacement en règle est réalisé dans QtScript pour utiliser JavaScriptCore, l'interpréteur JavaScript de Webkit qui fait de la compilation juste à temps. Ce remplacement permet dans la majorité des cas une amélioration faramineuse (<a href="http://labs.trolltech.com/blogs/2009/11/23/qtscript-in-46/">QtScript in 4.6</a>). Toujours en ce qui concerne WebKit, une classe <a href="http://doc.qt.nokia.com/4.6/qwebinspector.html">QWebInspector</a> représentant l'outil d'analyse d'une page Web (l'équivalent de l'inspecteur DOM de Firefox) fait son apparition est permet d'intégrer cet outil dans une application Qt (mais son adaptation visuelle selon la plate-forme n'est pas encore au menu de cette version...).
<br />
<br />
Pour finir dans les nouveautés, une nouvelle classe de positionnement des widgets fait son apparition : <a href="http://doc.qt.nokia.com/4.6/qgraphicsanchorlayout.html">QGraphicsAnchorLayout</a>. Dédié aux éléments QGraphics, elle permet de les positionner relativement les un par rapport aux autres. Une présentation technique de cette classe est réalisée <a href="http://labs.trolltech.com/blogs/2009/11/26/anchor-layout-joins-the-family-of-qgraphicslayout/">sur un Qt Blogs</a>.
<br />
<br />
Comme j'ai bien évidemment dû oublier quelques nouveautés, une consultation de <a href="http://doc.qt.nokia.com/4.6/qt4-6-intro.html">la page dédiée dans la documentation</a> ne serait pas de trop pour les plus curieux d'entre vous.
<br />
<br />
<b>Autour de Qt</b>
<br />
Qt Creator, l'environnement de développement dédié à Qt, dont la première version est sortie en même temps que la version 4.5, est également <a href="http://labs.trolltech.com/blogs/2009/12/01/hot-from-the-oven-qt-creator-13/">mis à jour dans sa version 1.3</a>. À côté de diverses améliorations, comme celle de la complétion et l'ajout d'un début de <a href="http://fr.wikipedia.org/wiki/Refactorisation">refactorisation</a>, du support de Symbian, et <a href="http://qt.gitorious.org/qt-creator/qt-creator/blobs/v1.3.0/dist/changes-1.3.0">de bien d'autres</a>, s'en cache une qui pourrait intéresser nombre de lecteurs de LinuxFr : la traduction en français des outils Qt. Cette traduction, ainsi que celles en allemand, espagnol, italien, japonais, polonais, russe et slovène sont rendues possibles grâce à l'aide de la communauté qui a abattu un gros travail (<a href="http://labs.trolltech.com/blogs/2009/11/24/qt-createur-qt-creator-is-also-in-french/">Qt Créateur - Qt Creator is also in French</a>). Ces contributions sont rendues possibles grâce à l'ouverture de plus en plus grande du développement de Qt, qui avant était fermé (même si l'on avait accès au source) et n'acceptait pas de contribution.
<br />
<br />
Concernant KDE dont le développement est intimement lié à celui de Qt, la prochaine version majeure, la 4.4, dont la sortie prévue est pour février 2010, utilisera cette version de Qt.
<br />
<br />
<b>Le futur</b>
<br />
Il est prévu en 2010 la livraison de plusieurs choses :
<br />
<br />
La plus importante est peut-être l'arrivée de Declarative UI et du langage de description QML. Ce sont la dernière partie du projet de recherche Kinetic (qui pour rappel contient les frameworks Animation et State Machine). L'utilisation de QML (dont un début de support est présent dans Qt Creator 1.3) se veut comme une nouvelle manière de décrire les interfaces graphiques (ce que fait actuellement les fichiers .ui de QtDesigner) et comment elles doivent se comporter (et c'est là la nouveauté). L'utilisation de QML a pour objectif de rendre la conception d'interfaces graphiques attrayantes (comprendre ici : contenant des effets de transitions entre les actions comme on en rencontres souvent dans de nombreuses interfaces utilisateurs de smartphones) plus facile. Un petit tour sur <a href="http://labs.trolltech.com/blogs/2009/05/13/qt-declarative-ui/">un des Qt Blogs</a> explique plus en détail à quoi ressemble QML et ce que l'on peut en faire. Le projet KDE a rapidement vu l'intérêt de QML et a décidé de commencer à travailler <a href="http://labs.trolltech.com/blogs/2009/09/24/qt-declarative-ui-and-plasma/">sur son utilisation dans Plasma</a> (le logiciel qui gère le bureau de KDE) et ses Plasmoids (des applications à "coller" où on veut sur le bureau).
<br />
<br />
A cela s'ajoute plusieurs cas d'utilisations spécifiques aux smartphones (mais qui dans certains cas sont pertinents pour le bureau) qui vont être pris en charge par Qt et connu sous le nom de <a href="http://qt.nokia.com/developer/new-qt-apis">Mobility Project</a>. Ce sera notamment le cas de la géolocalisation, de la gestion de contacts, de l'envoi de messages (SMS, MMS, Jabber via XMPP et bien sûr courriel), etc. Un aperçu de l'API est <a href="http://qt.nokia.com/doc/qtmobility-1.0-tp/index.html">disponible sous forme de Technology Preview</a> et attend des commentaires.
<br />
<br />
Et, pour finir dans les grands projets dont la sortie est prévue en 2010 : la <a href="http://labs.trolltech.com/blogs/2009/12/01/qt-for-maemo-5-next-iteration/">prise en charge de Maemo</a> (la plate-forme de développement utilisée par certains appareils de Nokia) est prévue. Pour l'instant Maemo utilise GTK+, le portage de Qt sur cette plate-forme ne semble pas de bonne augure pour GTK+…
<br />
<br />
À plus long terme est prévu (en vrac et de manière non exhaustive) : une refonte du système de compilation, le support de SOAP (très utile pour les Web Services), une nouvelle génération de widgets (qui devrait prendre tout son sens avec l'utilisation de tous ce qui est issu du projet Kinetic), une nouvelle architecture pour la version Linux dédiée à l'embarqué (portant le doux nom de projet Lighthouse), une API 3D portable pour le bureau et l'embarqué (avec peut-être la fin de l'utilisation d'OpenGL directement...), etc.
<br />
<br />
Pour plus de détail sur les projets en cours, vous pouvez consulter <a href="http://qt.nokia.com/developer/qt-roadmap">une petite feuille de route</a>.
<br />
<br />
Au final, je ne sais pas pour vous, mais je trouve le développement de Qt de plus en plus excitant !</div><div><a href="https://linuxfr.org/news/sortie-de-qt-46.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/25244/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/sortie-de-qt-46#comments">ouvrir dans le navigateur</a>
</p>
sanaohttps://linuxfr.org/nodes/25244/comments.atomtag:linuxfr.org,2005:News/260552009-10-22T12:46:41+02:002009-10-22T12:46:41+02:00Portage de Qt 4.5.1 sous Haiku<div><a href="http://fr.wikipedia.org/wiki/Qt" title="Définition Wikipédia">Qt</a>, la bibliothèque C++ multi-plateforme à tout faire, est portée sous <a href="http://fr.wikipedia.org/wiki/Haiku_(système_d'exploitation)">Haiku</a>, le pendant libre de feu BeOS. Voici l'occasion pour une présentation de ce portage, de ce qu'il apporte, et de l'API native d'Haiku.
<br />
<br />
Ce n'est pas la première fois qu'un portage de Qt pour BeOS est réalisé. Le premier remonte à 2001, du temps de Qt2. À l'époque, X-Window était nécessaire, alors que BeOS dispose de son propre système graphique. Ce portage, mal intégré, n'a pas eu un grand succès. Cette fois-ci, c'est un portage de la dernière version stable, la 4.5 (la 4.6 devrait sortir pour la fin de l'année), et X-Window n'est plus nécessaire.</div><ul><li>lien nᵒ 1 : <a title="http://dev.osdrawer.net/projects/qt-beos/" hreflang="en" href="https://linuxfr.org/redirect/64124">portage de Qt sous Haiku</a></li><li>lien nᵒ 2 : <a title="http://haiku-os.org/" hreflang="en" href="https://linuxfr.org/redirect/64125">Haiku</a></li><li>lien nᵒ 3 : <a title="http://www.beosfrance.com/articles.php?cat=article&id=592" hreflang="fr" href="https://linuxfr.org/redirect/64126">L'annonce qui a inspiré cette dépêche avec une archive à la clé!</a></li><li>lien nᵒ 4 : <a title="http://www.bebits.com/app/2420" hreflang="en" href="https://linuxfr.org/redirect/64127">Le premier portage de Qt sous BeOS</a></li><li>lien nᵒ 5 : <a title="http://www.haiku-os.org/legacy-docs/bebook/index.html" hreflang="en" href="https://linuxfr.org/redirect/64128">Le fameux BeBook</a></li><li>lien nᵒ 6 : <a title="http://factory.haiku-os.org/documentation/Haiku_Book_doxygen/html/" hreflang="en" href="https://linuxfr.org/redirect/64129">Le Haiku Book, décrivant les spécificité de l'API native d'Haiku</a></li></ul><div>Plusieurs programmes d'exemples ont été compilé, comme <a href="http://code.google.com/p/arora/">Arora</a>, un navigateur Web utilisant <a href="http://fr.wikipedia.org/wiki/WebKit">WebKit</a> (<a href="http://doc.trolltech.com/4.5/qtwebkit.html#details">intégré à Qt</a> depuis la version 4.4). La disponibilité de ce navigateur devrait combler un gros manque d'Haiku, car actuellement le navigateur livré dans Haiku est un portage de Firefox2 qui n'est pas connu pour sa vélocité.
<br />
<br />
Ce portage de Qt fait suite à la disponibilité de la <a href="http://linuxfr.org/2009/09/14/25900.html">première Alpha de Haiku</a> il y a quelques semaines.
<br />
<br />
Le portage d'une bibliothèque de cette qualité est une très bonne chose et rend le slogan de Qt (Qt everywhere) encore plus vrai. Mais il ne faut pas oublier qu'Haiku dispose de sa propre API, qui est quasiment la copie conforme de celle de BeOS. En C++, l'API native de Haiku est décrite en détail dans le BeBook et les spécificités de Haiku dans le Haiku Book.
<br />
<br />
L'API est divisée en « Kit » qui regroupent différentes classes selon leur thématique (noyau, interface graphique, réseau, mail, système de fichier, OpenGL, etc.). Bien qu'elle souffre de certains manques en raison de son âge (comme l'absence de système d'internationalisation ou de positionnement des éléments graphiques), mais qui devraient être comblés dans les prochaines versions de Haiku, elle offre tout de même des concepts fort intéressants. On peut citer notamment les Translators (qui permettent de rendre la lecture/écriture d'un nouveau format de fichier facilement ajoutable à toutes les applications utilisant les Translators, les BMessages (qui encapsulent des informations et qui sont à la base de tout le système de messages/événements d'une application native), les BQuery (qui utilisent toutes la puissance du BeFS, le système de fichiers d'Haiku utilisant massivement les métadonnées et dont l'interrogation est aussi rapide qu'une base de données) ou encore les Replicants (un équivalent au KPart de KDE).
<br />
<br />
L'avenir nous dira si ce portage est un succès.
<br />
<br />
Attention : le portage de Qt sous Haiku est une première version, ne vous attendez pas à une stabilité à toute épreuve !</div><div><a href="https://linuxfr.org/news/portage-de-qt-451-sous-haiku.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/25101/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/portage-de-qt-451-sous-haiku#comments">ouvrir dans le navigateur</a>
</p>
sanaohttps://linuxfr.org/nodes/25101/comments.atomtag:linuxfr.org,2005:News/251072009-03-03T16:25:10+01:002009-03-03T16:25:10+01:00Sortie de Qt 4.5<div>Qt 4.5, la bibliothèque C++ libre et multiplate-forme (UNIX, Mac OS X, Windows et Windows CE) sur laquelle se base KDE vient de sortir.
<br />
<br />
C'est la première version en LGPL, permettant ainsi de l'utiliser même pour un développement propriétaire.
<br />
<br />
Cette version apporte nombre d'améliorations après le gros bond en avant de la précédente version majeure, la 4.4. En même temps que la sortie de cette version, Qt Software (qui est un département de Nokia), distribue la première version stable de son environnement de développement intégré, Qt Creator.</div><ul><li>lien nᵒ 1 : <a title="http://www.qtsoftware.com/about/news/nokia-releases-new-qt-developer-offerings-to-increase-productivity-and-performance" hreflang="en" href="https://linuxfr.org/redirect/60858">L'annonce</a></li><li>lien nᵒ 2 : <a title="http://doc.trolltech.com/4.5/qt4-5-intro.html" hreflang="en" href="https://linuxfr.org/redirect/60859">La description en détail des principales nouveauté</a></li><li>lien nᵒ 3 : <a title="http://www.qtsoftware.com/developer/changes/changes-4.5.0" hreflang="en" href="https://linuxfr.org/redirect/60860">Le changelog</a></li><li>lien nᵒ 4 : <a title="http://doc.trolltech.com/4.5/index.html" hreflang="en" href="https://linuxfr.org/redirect/60861">La documentation technique</a></li><li>lien nᵒ 5 : <a title="http://fr.wikipedia.org/wiki/Qt" hreflang="fr" href="https://linuxfr.org/redirect/60862">L'article sur Wikipédia</a></li></ul><div>Qt est une bibliothèque C++ et Java. Mais cette dernière version ne sera plus maintenue officiellement par Qt Software et son évolution sera à la charge de la communauté.
<br />
<br />
Utilisée principalement en C++, Qt est bien plus qu'une simple bibliothèque graphique car elle regroupe (en vrac) :<ul><li>Du réseau et un moteur de rendu HTML basé sur Webkit ;
<br />
</li><li>Du <a href="http://fr.wikipedia.org/wiki/Extensible_Markup_Language">XML</a> ;
<br />
</li><li>De la base de données ;
<br />
</li><li>Du multimédia via Phonon (uniquement en lecture pour l'instant) ;
<br />
</li><li>QtScript, un langage de script (basé sur JavaScript) ;
<br />
</li><li>De l'<a href="http://fr.wikipedia.org/wiki/OpenGL">OpenGL</a> ;
<br />
</li><li>Qt Linguist, pour l'internationalisation ;
<br />
</li><li>La gestion des threads ;
<br />
</li><li>Un système de test unitaires ;
<br />
</li><li>Qt Designer, un créateur d'interface ;
<br />
</li><li>etc.</li></ul>
<br />
Pour les nouveautés de Qt 4.5 :<ul><li>Mise à jour de QtWebkit : le nouveau moteur JavaScript est présent, les greffons Netscape sont utilisables (bonjour Flash !), les nouvelles balises du HTML 5 sont utilisables et utilisent <a href="http://fr.wikipedia.org/wiki/Phonon_(KDE)">Phonon</a> ;
<br />
</li><li>Diverses améliorations des performances et l'apparition d'une bibliothèque mesurant les performances, QtBenchLib ;
<br />
</li><li>L'utilisation de Cocoa pour la version Mac OS X ;
<br />
</li><li>L'utilisation de Phonon et QtWebkit pour Windows CE ;
<br />
</li><li>Un moteur de transformation <a href="http://fr.wikipedia.org/wiki/Extensible_Stylesheet_Language_Transformations">XSLT</a> ;
<br />
</li><li>Un débogueur pour QtScript ;
<br />
</li><li>L'écriture de fichier <a href="http://fr.wikipedia.org/wiki/OpenDocument">OpenDocument</a> ;
<br />
</li><li>Une meilleure intégration pour les environnements utilisant GTK ;
<br />
</li><li>Diverses améliorations dans Qt Linguist, Qt Designer, les performances graphiques, etc.</li></ul>
<br />
En résumé, Qt c'est bon, mangez-en !</div><div><a href="https://linuxfr.org/news/sortie-de-qt-45.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/24204/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/sortie-de-qt-45#comments">ouvrir dans le navigateur</a>
</p>
sanaohttps://linuxfr.org/nodes/24204/comments.atomtag:linuxfr.org,2005:News/212262006-08-22T10:21:13+02:002006-08-22T10:21:13+02:00Haïku fête ses 5 ans<div>Le système d'exploitation libre Haïku, anciennement OpenBeOS, fête ses cinq ans. C'est le projet le plus complexe parmi ceux ayant pour objectif de fournir une version libre de BeOS, système d'exploitation très apprécié par certains et en avance sur son temps.
<br />
<br />
Aujourd'hui, Haïku peut démarrer et est relativement stable pour une version de développement. Les principaux travaux chantiers actuels sont la couche réseau et la pile USB.
<br />
<br />
Le projet Haïku utilise la licence MIT qui est semblable à la BSD.
<br />
<br />
BeOS était un système d'exploitation propriétaire développé par Be. Ce système était connu pour sa réactivité, sa légèreté et son API objet en C++ très simple à utiliser.</div><ul><li>lien nᵒ 1 : <a title="http://www.haiku-os.org/learn.php" hreflang="en" href="https://linuxfr.org/redirect/48138">Site officiel</a></li><li>lien nᵒ 2 : <a title="https://fr.wikipedia.org/wiki/Haiku_(syst%C3%A8me_d%27exploitation)" hreflang="fr" href="https://linuxfr.org/redirect/48139">Haïku sur Wikipédia</a></li><li>lien nᵒ 3 : <a title="http://commons.wikimedia.org/wiki/Haiku" hreflang="en" href="https://linuxfr.org/redirect/48140">Copie d'écran sur Commons</a></li><li>lien nᵒ 4 : <a title="http://fr.wikipedia.org/wiki/BeOS" hreflang="fr" href="https://linuxfr.org/redirect/48141">BeOS sur Wikipédia avec un historique</a></li><li>lien nᵒ 5 : <a title="http://www.haiku-os.org/factory/" hreflang="en" href="https://linuxfr.org/redirect/48142">Image d'Haïku fonctionnant avec QEMU</a></li></ul><div>Suite au rachat de Be par Palm, le développement de BeOS fut stoppé, mais rapidement, des groupes se sont formés visant à recréer BeOS. Certains avaient des approches jugées comme pragmatiques, en se basant sur un noyau solide, plutôt que de repartir de zéro. C'est ainsi que des projets ont vu le jour avec pour objectif de porter l'API et l'apparence de BeOS sur des noyau BSD ou Linux. Mais ces projets sont aujourd'hui à l'abandon, le seul qui reste est Haïku, qui est de loin le plus ambitieux.
<br />
<br />
Son objectif est de fournir une version R1 presque identique à la dernière version distribuée par Be, en redéveloppant tout de zéro. Le "presque à l'identique" signifie que bien que la compatibilité binaire soit assurée (un exécutable BeOS tourne sans problème sous Haïku), il y a tout de même quelques différences : <ul><li>la couche réseau est celle que Be était en train de développer, fournissant des services identiques à ceux proposés par Linux ou les BSD
<br />
</li><li>une pile USB prenant en charge les dernières version de la norme
<br />
</li><li>une API claire pour ajouter de nouveaux CODEC</li></ul>
<br />
Pour tester sans devoir l'installer, vous pouvez utiliser QEMU avec les images fournies par l'équipe d'Haïku.</div><div><a href="https://linuxfr.org/news/haiku-fete-ses-5-ans.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/20535/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/haiku-fete-ses-5-ans#comments">ouvrir dans le navigateur</a>
</p>
sanaohttps://linuxfr.org/nodes/20535/comments.atom