• Aucun résultat trouvé

4 Ajout d’un bouton pour quitter l’application

N/A
N/A
Protected

Academic year: 2022

Partager "4 Ajout d’un bouton pour quitter l’application"

Copied!
2
0
0

Texte intégral

(1)

SI2 - Master ISI - IHM02 octobre 2006 D´ecouverte de Qt : Premiers pas

Afin de nous familiariser avec cette biblioth`eque, nous allons cr´eer une premi`ere application de type “Hello World” : cette application cr´ee et affiche une fenˆetre contenant un message ainsi qu’un bouton permettant de quitter l’application.

1 Hello World primitif

Commen¸cons simplement par une fenˆetre contenant un message :

#include <QApplication> // permet d’utiliser la classe QApplication

#include <QLabel> // permet d’utiliser la classe QLabel // fonction principale

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

// cr´eation d’une instance de la classe QApplication permettant de // prendre en compte les diff´erents arguments -geometry -display ...

// c’est aussi une variable globale accessible sous le nom qApp QApplication app( argc, argv );

// cr´eation d’un QLabel. Le texte affich´e est format´e `a l’aide d’un // sous-ensemble d’HTML (voir $QTDIR/doc/html/qstylesheet.html) QLabel *hello =

new QLabel(‘‘<font color=blue>Hello World !</font>’’,0);

// d´efinition du Widget principale qui va contenir les autres widgets app.setMainWidget(hello);

// modification des propri´et´es du QLabel pour qu’il puisse s’afficher hello->show();

// lancement de la boucle principale (gestion et traitement des // interruptions, ...)

// cette boucle ne se termine que sur l’appel de app.exit() // ou la destruction du widget

return app.exec();

}

2 Comment compiler ?

Nous nous pla¸cons ici sur un syst`eme de type Linux / Unix.

Qtposs`ede un outil de g´en´eration de Makefile qui vous simplifiera la vie, surtout quand le code contient plusieurs fichiers sources ou r´epertoires. Il s’agit de qmake. Lancez tout d’abord la commande qmake -projectdans votre r´epertoire de travail. Quels sont les fichiers cr´e´es ? Observez leur contenu. Lancez ensuite la commandeqmakeafin de g´en´erer leMakefile. Quels sont les fichiers cr´e´es ? Observez leur contenu. Vous pouvez maintenant lancer la compilation par la commandemake.

Par la suite, il sera n´ecessaire de modifier le fichier .pro pour sp´ecifier l’inclusion de bi- blioth`eques externes (OpenGL, ...).

1

(2)

3 Comment ex´ ecuter ?

Comme d’habitude :./hello.

Modifier le texte affich´e en “Bienvenue `a Polytech”’ et ajouter le logo correspondant. Aidez- vous pour cela de la page :

$QTDIR/html/qlabel.html

4 Ajout d’un bouton pour quitter l’application

Les classes disponibles sont consultables sur la page$QTDIR/dochtml/classes.html. M´emorisez cette page dans vos signets (bookmarks) !

Cr´e´ez un bouton de typeQPushButtoncomportant le texte “Quitter”. Recompilez et ex´ecutez votre code. Si vous cliquez sur le bouton, que se passe t’il ?

Afin de quitter l’application, il faut sp´ecifier `a votre application que l’action de clic de souris sur le bouton doit d´eclancher un arrˆet de l’application. Pour Qt, les ´ev´enements pouvant intervenir sont consid´er´es comme des signaux (signals). Les objets Qt peuvent poss`eder des slots leur permettant de r´epondre aux ´ev´enements. Toutes les classes Qt h´eritent d’une classe m`ere QObject poss´edant une m´ethode statiqueconnect (ainsi qu’une m´ethode disconnect) permettant de connecter (ou d´econnecter) un signal `a unslot.

Regardez la page$QTDIR/doc/html/qapplication.html`a la rubrique “Public slots”. Pour notre exemple, la classeQApplicationposs`ede unslotquit()permettant de terminer la boucle principale. Ajoutez la ligne suivante apr`es la cr´eation du bouton :

app.connect(&bouton, SIGNAL(clicked()), &app, SLOT(quit()));

Les macrosSIGNAL et SLOT permettent de transformer les signaux et slots en chaˆınes de ca- ract`eres.

Recompilez et ex´ecutez. Y a t-il de nouveaux fichiers cr´e´es ?

Par la suite, on pourra connecter un signal `a plusieurs slots et plusieurs signaux `a unslot.

Il faudra cependant se m´efier de l’ordre de traitement qui n’est pas forc´ement d´ependant de l’ordre des connections.

Essayez de manipuler d’autres widgets de la biblioth`eque.

2

Références

Documents relatifs

(2) Dans le fichier index.php, pour chaque film de la base, cr´ eer un lien vers fiche.php en envoyant un param` etre par la m´ ethode Get ou Post.. (3) R´ ecup´ erer l’id dans

— arange(xmin,xmax,pas) ( array range ) : cr´ ee un array dont le premier ´ el´ ement est xmin et dont chaque ´ el´ ement est distant de pas, le dernier ´ etant strictement

En quelle ann´ ee le nombre de plaintes pour blessures non mortelles est-il le plus faible.. En quelle ann´ ee le nombre de plaintes pour blessures non mortelles est-il relativement

Nous avons créé une simple application Hello World pour Java afin que vous puissiez rapidement vous familiariser avec le déploiement d'une application sur Google Cloud Platform.

En d’autres termes, pour tout nombre premier p, il existe ` a isomorphisme pr` es un et un seul groupe d’ordre p, qui est le groupe cyclique (donc ab´ elien) C

Dans un anneau principal, tout id´ eal premier non-nul est maximal (et donc, pour les id´ eaux non-nuls, les notions de premier et de maximal

(b) La fonction grille derouler qui permet de retracer le d´ eroulement du jeu en affichant, pour chaque coup jou´ e de 1 au nombre de coups jou´ es de la partie : si une case a ´ et´

Vous disposez d’une biblioth` eque “calculatrice” repr´ esentant une calculatrice pour nombres rationnels (cf., l’extrait du fichier d’entˆ ete qui est joint au sujet)..