TP 3 : premiers pas avec une interface graphique

Configuration de l'environnement

Pour pouvoir utiliser la bibliothèque gtkmm, vous allez devoir modifier votre environnement :

  • la variable PATH doit contenir /users/prof/lamy/local/bin :
export PATH=/users/prof/lamy/local/bin:$PATH
  • la variable LD_LIBRARY_PATH doit contenir /users/prof/lamy/local/lib :
export LD_LIBRARY_PATH=/users/prof/lamy/local/lib:$LD_LIBRARY_PATH
  • la variable PKG_CONFIG_PATH doit contenir /users/prof/lamy/local/lib/pkgconfig :
export PKG_CONFIG_PATH=/users/prof/lamy/local/lib/pkgconfig:$PKG_CONFIG_PATH

Modifiez votre fichier ~/.bashrc, et lancez les trois commandes export dans votre shell courant pour que les modifications soient prises en compte dans celui-ci.

La documentation de la bibliothèque gtkmm est disponible sur le web. Cette documentation vous sera très utile par la suite.

Utilisation de gtkmm

L'utilisation de bibliothèques nécessite souvent de passer un certain nombre de paramètres au compilateur et à l'éditeur de liens. Comme ces paramètres peuvent être complexes, beaucoup de bibliothèques modernes fournissent pkg-config, un petit programme qui permet de les obtenir. Par exemple pkg-config –cflags gtkmm-2.0 affiche les options nécessaires pour compiler un programme utilisant gtkmm. Pour compiler effectivement un programme, on utilisera :

g++ `pkg-config --cflags gtkmm-2.4` -c programme.cpp

Le Makefile utilisé est le suivant :

# Options de compilation
CXXFLAGS = `pkg-config --cflags gtkmm-2.4`
#Options de liaison
LDFLAGS  = `pkg-config --libs gtkmm-2.4`
 
monExecutable : objet1.o objet2.o
    $(CXX) $(LDFLAGS) -o $@ $^

Premier programme

Copiez les fichiers Makefile, main.cpp, MaFenetre.h et MaFenetre.cpp chez vous. Compilez le programme (make) et exécutez-le. Lisez le code attentivement. Certains aspects vous paraîtront encore confus, ce n'est pas grave. Pour le moment nous allons nous contenter d'en comprendre les grandes lignes et de rajouter des choses simples.

Dessiner dans une fenêtre

Copiez les fichiers ZoneDessin.h et ZoneDessin.cpp chez vous. Modifiez la classe MaFenetre pour qu'elle comporte un membre de type ZoneDessin. Modifiez le Makefile pour que la fichier ZoneDessin.cpp soit compilé, compilez le programme et exécutez le. Lisez le code attentivement. La classe Gdk::Drawable contient des fonctions de dessin. Utilisez-les pour dessiner un rectangle plein dans la fenêtre.

Dessin et bouton

Ajoutez une fonction à la classe ZoneDessin qui permet de dessiner une ligne aléatoire dans la zone de dessin (la taille de la zone s'obtient grâce à la fonction Gdk::Drawable::get_size, qui s'applique à la fenêtre retournée par la fonction get_window()). Modifiez la classe MaFenetre de telle manière que le clic sur le bouton appelle votre fonction de tracé de ligne aléatoire.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>