Ajax HTML 5 JavaScript Création site CMS Comment Design Logiciels Programmation RSS SQL Scripts Mobiles
Algorithmes
Liste des algorithmes
Etonnants algorithmes
Eratosthènes
Langages
Liste des langages
Histoire
Logiciels et scripts

Qt, framework portable pour bureau et mobiles

Qt (cute) est une bibliothèque graphique pour le développement de GUI, interface graphique utilisateur, multi-plateformes, ce qui inclut Linux et Windows.
Elle propose des composants d'interface graphiques, les widgets, ainsi que d'autres pour l'accès aux bases de données, le traitement de fichiers XML, une API de système de fichiers.
Un outil de développement, Qt Creator est offert gratuitement pour réaliser des applications Qt.

Qt creator
Qt Creator est un EDI spécialisé

Les principales applications utilisant Qt sont l'environnement Linux KDE, le navigateur Opera (sous Linux), VLC, Google Earth, Skype.

La version 5 intègre le compilateur V8. La tendance est à l'utilisation de C++ pour créer les modules tandis que JavaScript est le langage de l'interface.

Qt a été développé par la société Trolltech, acquise en 2008 par Nokia. Trolltech devient alors Qt Software. En août 2012, Nokia cède Qt à la société finlandaise Digia qui compte le porter sur toutes les plateformes dont Android et Windows 8.

La 3D avec Qt

Il est possible d'incruster un widget Qt dans une scène en 3D, comme on le voit dans la démonstration WolfenQt. En réutilisant l'algorithme devenu classique du jeu Wolfenstein 3D, on incruste dans les murs un widget d'affichage permettant de faire apparaître une quelconque application sur les murs du labyrinthe. L'affichage rapide est obtenu en mixant la librairie graphique OpenGL avec le code Qt.

Voir la vidéo.

Qt et le navigateur

Qt peut fonctionner sur la plateforme Native Client dans tout navigateur sauf Internet Explorer, donc dans un environnement séparé du système comme le fait JavaScript.
On peut ainsi avoir des applications fonctionnant dans le navigateur mais devant être compilées pour chaque système d'exploitation.

Qt et JavaScript

Peut-on faire un programme Qt en JavaScript? On ne parle pas d'utiliser JavaScript en association avec les composants de Qt comme le fait Qt Quick mais d'écrire des programmes en JavaScript utilisant Qt. Cela d'utiliser un langage de script que l'on connaît bien si l'on est webmaster, sur le poste local avec une interface graphique...

C'est l'objet du module node-qt qui fonctionne avec Node.js. Cette plateforme permet d'utiliser JavaScript en ligne de commande, et ce module intègre Qt à la plateforme.
Pour l'utiliser, il faut:

  1. Installer Node.js.
  2. Installer node-qt, avec la commande: npm install node-qt.
  3. Inclure le module dans le script avec une instruction:
    var qt = require('node-qt');
    
  4. Créer une application avec:
    var app = new qt.QApplication;
  5. Créer une fenêtre avec:
  6. var window = new qt.QWidget;
  7. On peut alors ajouter un contenu à la fenêtre avec la méthode:
    window.paintEvent(function() { ... }

Tout cela se fait avec un simple éditeur de texte.

Pour plus de détails, voir node-qt sur Github. Bien sûr l'intégration dans Node permet de faire communiquer entre eux des programmes d'origines différentes, l'interface Qt pouvant cohabiter avec des pages HTML, des scripts PHP comme cela est montré dans la section JavaScript de ce site.

Qt et les mobiles

Nokia a développé Qt Quick pour les mobiles et tablette, un framework offrant des composants pour réaliser des interfaces. Cette version allégée convient aux écrans tactiles. Il intègre le langage QML, une version de JavaScript, un runtime pour accéder aux fonctions du système. Le programmeur peut l'utiliser avec Qt Creator.

Après l'annonce du partenariat entre Nokia et Microsoft, et le choix de Windows Phone 7 comme système préférentiel pour les smartphones, les développeurs s'inquiètent quand à l'avenir de Qt.
En effet WP7 utilise Silverlight et XNA comme outil de développement et il est exclu (c'est Nokia qui le dit) de porter Qt sur cet environnement.
Nokia avait confirmé cependant son soutien à Qt qui fonctionne sur Symbian et Meego, avait décidé de le développer en engageant de nouveaux développeurs, mais en 2012, elle se sépare totalement de la plateforme au profit de Digia.
Après le remplacement de Meego par Tizen, dont l'interface privilégiée est HTML 5, Qt se voit plus encore marginalisé sur les mobiles. Cependant, l'interface étant devenue compatible avec Android et iOS (depuis la version 5.1), il reste possible de développer sous Qt sur mobiles à coté de la plateforme standard.

Sachant que Qt utilise JavaScript pour l'interface et embarque le compilateur V8, son intérêt semble réduit sur mobile où l'on peut aussi bien utiliser Node en combinaison avec HTML 5 pour obtenir une interface utilisateur complète (voir la sections JavaScript sur ce site).

Voir aussi

  • QML. Langage d'interfaces utilisateur.
  • WebKit. Le moteur de rendu est celui qu'utilise Qt pour présenter des documents.

Références et ressources

  • Qt-Project. Le nouveau site pour le projet open source.
  • Critique. Juste une opinion.
  • Qt pour Android. Pour des applications fonctionnant à la fois sur mobile et sur le bureau.
  • Qt Apps. Liste d'applications sous Qt. Cela comprend KDE, Google Earth.
  • Razor-Qt. Alternative légère à KDE, un environnement de bureau basé sur Qt pour Linux. Cela ne satisfera pas seulement les déçus de KDE, c'est aussi une solution pour utiliser une tablette comme ordinateur de bureau.
  • Emscriptem-qt. Outil pour compiler les applications Qt en JavaScript afin qu'elles fonctionnent dans un navigateur. Elle sont alors beaucoup plus lentes.
Tweet
© 2008-2013 Scriptol.fr