samedi 20 novembre 2010

QT une bibliothèque C++ qui en jette

Nokia propose une bibliothèque C++ simple à utiliser (contrairement par exemple aux MFC de Microsoft) permettant de créer :
- De puissantes interfaces graphiques
- Du 3D avec Open GL (de Khronos)
- Des applications multithread
- Des applications 2D

QT propose aussi des APIs pour : Les bases de données, XML, apis réseaux, Web, mécanismes d'IPC, etc.

Il s'agit d'un framework proposant un code portable sur : LINUX, Windows, MAC OsX, les mobiles : Nokia, Symbian, linux embarqué.

Qt propose "Qt Creator" comme environnement de développement : compilateur, déboggeur, documentation, ...

Il existe aussi un plug in pour une intégration dans Eclipse, et un add-in pour Visual Studio de Microsoft.

















C'est ici que vous trouverez le portail QT.

Il existe aussi le QTDesigner pour créer son interface en WYSWYG.

La force de cette bibliothèque réside sans doute dans sa simplicité de programmation :


#include "QApplication"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    Screenshot screenshot;
    screenshot.show();
    return app.exec();
}

Cette bibliothèque est actuellement une des bibliothèques les plus prisées sur le marché avec boost.

QT introduit aussi des mécanismes puissants purement objet concernant la copie des objets qui peut s'avérer en C++ une plaie (cf : problèmes des opérateurs = et constructeurs par copie générés automatiquement par le compilateur) : QT propose la copie profonde qui copie les objets (deep copy) ou la shallow copy qui copie les références.

Une classe de base QObject est proposée dans le kit.

- Des mécanismes avancés de "signaux" et "slots" sont proposés et vous pouvez les implémenter dans vos classes QT, ces dernières permettent la communication entre des objets QT.
- Un mécanisme de propriété des objets
- Un mécanisme spécifique de gestion des évènements
- Un mécanisme de gestion d'arbres d'objets composite
- Des "QPointer" remis à 0 automatiquement quand l'objet est détruit
- Un mécanisme de "dynamic cast" élaboré.
- De nombreuses classes utilitaires, dont un mécanisme de cache.
- Le module "QtTest" pour le gestion des tests unitaires.

Il existe même QTJambi, une implémentation de la librairie en java.

Bref du tout bon, à découvrir absolument !

Aucun commentaire:

Enregistrer un commentaire