Date de publication : 20 Février 2007
Nous allons cette fois, essayer de rendre nos fenêtres un peu moins austères.
Pour cela, nous allons utiliser des images grâce au widget GtkImage. Nous
allons voir comment afficher une image à partir d'un fichier ou d'un
GtkStockItem.
Pour ce widget, il y a toute une panoplie de fonction de création. Nous n'allons en étudier que quelques-unes, car certaines font appel à des notions par encore vues. Voici donc les fonctions étudiées :
GtkWidget* gtk_image_new (void);
GtkWidget* gtk_image_new_from_file (const gchar *filename);
GtkWidget* gtk_image_new_from_stock (const gchar *stock_id, GtkIconSize size);
La première crée une image mais complètement vide.
La deuxième crée l'image à partir du fichier filename.
Gtk+ est capable d'utiliser les images qui sont au format PNG, JPEG, TIFF. Le
chemin du fichier filename peut être relatif ou absolu. Si le chemin
spécifié est incorrect ou que le format de l'image est invalide,
l'image de retour sera celle-ci :
La troisième fonction, récupère l'image qui est associée
à un objet GtkStockItem afin de l'afficher. Le paramètre size
peut prendre sept valeurs différentes pour définir la taille de
l'image à afficher :
Valeur | Aperçu |
GTK_ICON_SIZE_INVALID | Ne peut être passé en paramètre. Ceci est uniquement une valeur de retour. |
GTK_ICON_SIZE_MENU | |
GTK_ICON_SIZE_SMALL_TOOLBAR | |
GTK_ICON_SIZE_LARGE_TOOLBAR | |
GTK_ICON_SIZE_BUTTON | |
GTK_ICON_SIZE_DND | |
GTK_ICON_SIZE_DIALOG |
Cette étape intervient lorsque vous avez créé une image vide ou lorsque vous voulez changer d'image. Les deux fonctions étudiées ici sont :
void gtk_image_set_from_file (GtkImage *image, const gchar
*filename);
void gtk_image_set_from_stock (GtkImage *image, const gchar *stock_id, GtkIconSize
size);
Les paramètres sont les même que lors de la création d'un widget GtkImage, sauf qu'il faut préciser à quelle widget il faut appliquer l'image.
#include <stdlib.h> #include <gtk/gtk.h> int
main(int argc, char
**argv) gtk_init(&argc, &argv); pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
pVBox = gtk_vbox_new(FALSE, 0); /* Chargement d'une image
a partir d'un fichier */ pQuitBtn = gtk_button_new(); /* Chargement d'une image
a partir d'un GtkStockItem */ gtk_widget_show_all(pWindow); gtk_main(); return EXIT_SUCCESS;
|
Résultat : |