III. Hello World▲
- 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 :
Et voilà le code source complet de l'application :
#include
<QApplication>
#include
<QPushButton>
int
main(int
argc, char
*
argv[])
{
QApplication
app(argc, argv);
QPushButton
hello("Hello world!"
);
hello.show();
return
app.exec();
}
III-A. Analyse du code ligne par ligne▲
#include
<QApplication>
Cette ligne inclut la définition de la classe QApplication. Il doit y avoir une instance de QApplication dans toute application qui possède une IHM avec Qt. QApplication gère différentes ressources au niveau de l'application, comme la police de caractères par défaut ou le curseur.
#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 composant de l'interface graphique qui peut gérer une entrée de l'utilisateur et dessiner. Le programmeur peut changer tout le look and feel du widget ou seulement une partie de celui-ci (la couleur, par exemple), ainsi que son contenu. Un QPushButton peut afficher du texte ou un QIcon.
int
main(int
argc, char
*
argv[]){
La fonction main() est le point d'entrée du programme. Le plus souvent, l'utilisation de cette fonction ne nécessite que quelques initialisations avant de passer la main à la bibliothèque Qt, qui indique ensuite au programme, par le biais d'événements, les actions demandées par l'utilisateur. 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++.
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 toute utilisation d'une quelconque fonctionnalité d'IHM de Qt.
QPushButton
hello("Hello world!"
);
Après la création de la QApplication, voilà la première ligne de code liée à l'IHM : un bouton est créé. Le bouton affiche le texte "Hello world!". Comme, dans le constructeur de QPushButton, on n'a pas spécifié un second argument pour préciser la fenêtre parente du bouton, ce 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.
hello.show();
Un widget n'est jamais visible quand on le crée. Il faut appeler QWidget::show() pour le rendre visible.
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.
III-B. Les variables d'environnement▲
Si vous utilisez la ligne de commande pour développer des applications Qt, 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 plateforme. 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 vous-même la variable PATH ou utiliser le script du Qt SDK qtenv.bat, comme décrit ci-après.
III-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, en modifiant et en recompilant vous-même ces exemples, vous en apprendrez beaucoup sur la façon d'utiliser Qt. Dans le cas où vous auriez copié le(s) fichier(s) .cpp et .h d'un exemple dans un autre répertoire pour y apporter vos modifications, la prochaine étape sera de créer un Makefile pour Qt dans ce répertoire. La création d'un Makefile pour Qt utilise la commande qmake, un outil de compilation fourni avec Qt. Pour créer un Makefile, lancez les deux commandes suivantes dans le répertoire contenant vos sources modifiées :
qmake -project
qmake
make # ou nmake
La première commande ordonne à 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. Vous n'avez plus qu'à lancer make (nmake si vous êtes sous Visual Studio) pour compiler le programme et vous pourrez ensuite lancer votre première application Qt !
Il n'y a pas d'emplacement spécifique pour vos fichiers, c'est à vous de le déterminer en fonction de votre système, qmake s'y adaptera. Il suffit de le lancer à la racine de vos sources.
Il est possible que vous deviez spécifier une variable d'environnement, QMAKESPEC, qui correspond à
votre plateforme (le triplet système d'exploitation, compilateur, bitness).
De même, il est probable que vous deviez modifier votre PATH avant d'appeler qmake, sous peine
d'erreurs, sous Windows. Si vous utilisez le Qt SDK, vous devriez utiliser le script qtenv.bat
contenu dans le dossier Dossier d'installation du Qt SDK\bin, soit généralement un chemin
du genre C:\Qt\2010.05\bin. Ce script définira aussi la variable QMAKESPEC
en fonction de ce qui est nécessaire pour votre environnement.
III-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!".
Vous pourrez trouver l'exécutable release dans le dossier release à la racine de vos sources.
III-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).