Débuter dans la création d'interfaces graphiques avec Qt 4

Image non disponible


précédentsommairesuivant

I. Hello Word

t1.rar

Fichiers
  • tutorials/tutorial/t1/main.cpp
  • tutorials/tutorial/t1/t1.pro

Ce premier programme est un simple exemple de Hello World. Il contient juste le minimum pour créer une application Qt. Voici un aperçu du programme:

Image non disponible

Et voilà le code source complet de l'application:

 
Sélectionnez
#include <QApplication>
#include <QPushButton>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QPushButton hello("Hello world!");

    hello.show();
    return app.exec();
} 

I-A. Analyse du code ligne par ligne

 
Sélectionnez

 #include <Qapplication> 

Cette ligne inclut la définition de la classe QApplication. Il doit y avoir une instance de QApplication dans chaque application qui possède une IHM avec Qt. QApplication qui gère différentes ressources au niveau de l'application, comme la police de caractère par défaut ou le curseur.

 
Sélectionnez

 #include <QPushButton> 

Cette ligne inclut la définition de la classe QPushButton. Pour chaque classe faisant partie de l'API publique de Qt, il y a un fichier d'en-tête de même nom contenant sa définition. QPushButton est un bouton d'interface graphique que l'utilisateur peut presser et relâcher. Il gère lui même son propre look and feel, comme n'importe quel QWidget. Un widget est un objet de l'interface graphique qui peut gérer une entrée de l'utilisateur et dessiner. Le programmeur peut soit changer tout le look and feel du widget comme seulement un partie de celui-ci (la couleur, par exemple), ainsi que son contenu. Un QPushButton peut afficher, soit du texte, soit un QIcon.

 
Sélectionnez

 int main(int argc, char *argv[])
{ 

La fonction main() est le point d'entrée du programme. Presque tout le temps en utilisant Qt, cette fonction n'a besoin de faire que quelques initialisations avant de passer la main à la bibliothèque Qt , qui informe ensuite le programme des actions utilisateur via des évènements. Le paramètre argc est le nombre d'arguments de la ligne de commande et argv est le tableau contenant les arguments de la ligne de commande. C'est une propriété standard du C++.

 
Sélectionnez

 QApplication app(argc, argv); 

app est l'instance de QApplication de ce programme. Elle est créée ici. Les arguments argc et argv sont passés au constructeur de QApplication pour qu'il puisse traiter certains arguments de ligne de commande standard (comme -display sous X11). Tous les arguments de ligne de commande reconnus par Qt sont enlevés de argv, et argc est décrémenté en conséquence. Voir la documentation de QApplication::arguments() pour plus de détails. L'instance de QApplication doit-être créée avant l'utilisation de n'importe quelle fonctionnalité d'IHM de Qt.

 
Sélectionnez

 QPushButton hello("Hello world!"); 

Après la création de la QApplication, voilà la première ligne liée à l'IHM : un bouton est créé. Le bouton affiche le texte "Hello world!". Comme on ne spécifie pas de fenêtre parente (comme deuxième argument du constructeur de QPushButton), le bouton sera lui-même une fenêtre, avec son propre cadre et sa barre de titre. La taille du bouton est déterminée par défaut. On pourrait appeler QWidget::move() pour assigner un emplacement spécifique au widget, mais nous laissons ici le système choisir une position.

 
Sélectionnez

 hello.show(); 

Un widget n'est jamais visible quand on le crée. Il faut appeler QWidget::show() pour le rendre visible.

 
Sélectionnez

 return app.exec();
} 

C'est ici que le main() passe le contrôle à Qt. QCoreApplication::exec() finira en même temps que l'application. QCoreApplication est une classe de base de QApplication. Elle implémente les fonctionnalités non liées à l'IHM et peut être utilisée pour le développement d'applications sans IHM. Dans QCoreApplication::exec(), Qt reçoit et traite les évènements système et les renvoie aux widgets appropriés. Vous devriez maintenant compiler et lancer le programme.

I-B. Les variables d'environnement

Si vous développez des applications Qt à la ligne de commande, vous devez vous assurer que les librairies et les exécutables de Qt sont accessibles à votre environnement en ajoutant le chemin du répertoire bin de Qt à votre variable PATH. Cette opération est décrite dans les instructions d'installation de votre plate-forme. Sous Windows, ceci est automatique si vous utilisez la fenêtre de commande depuis le menu Démarrer > (Tous les) Programmes > Qt. Si vous utilisez la fenêtre de commande depuis Démarrer > Exécuter > command ou cmd, vous devrez paramétrer la variable PATH vous même.

I-C. Compiler l'application

Les exemples de ce tutoriel sont situés dans le répertoire examples/tutorials/tutorial de Qt. Si vous avez installé Qt à partir d'un exécutable, les exemples ont également été installés. Si vous avez compilé Qt vous même, les exemples ont été compilés en même temps. Dans les deux cas, il y a beaucoup à apprendre sur comment utiliser Qt en modifiant et en recompilant vous même ces exemples. En assumant que vous ayez copié le(s) fichier(s) .cpp et .h d'un exemple dans un autre dossier pour y apporter vos modifications, la prochaine étape est de créer un makefile pour Qt dans ce répertoire. Pour créer un makefile pour Qt, il faut utiliser la commande qmake, un outil de compilation fourni avec Qt. Lancer les deux commandes suivantes dans le répertoire contenant vos sources modifiées pour créer un makefile : qmake -project puis qmake La première commande ordonne a qmake de créer un fichier de projet (.pro). La seconde commande ordonne à qmake d'utiliser le fichier .pro pour créer un makefile adapté à la plateforme et au compilateur. Maintenant vous n'avez qu'à lancer make (nmake si vous êtes sous Visual Studio) pour compiler le programme, et vous pouvez ensuite lancer votre première application Qt!

I-D. Lancer l'application

Quand vous lancerez cet exemple, vous verrez une petite fenêtre affichant un seul bouton. Sur le bouton, vous pourrez lire le fameux: "Hello world!".

I-E. Exercices

Essayez de dimensionner la fenêtre. Si vous êtes sous X11, essayez de lancer le programme avec l'option -geometry (par exemple, -geometry 100x200+10+20).


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2009 . Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.