Les images
1. Présentation
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.
1.1 Hiérarchie
GObject ->
GtkObject ->
GtkWidget ->
GtkMisc? ->
GtkImage
2. Utilisation de base
2.1 Création
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 plus complexes. Voici donc les fonctions étudiées :
image = gtk.Image()
image = gtk.image_new_from_file(filename)
image = gtk.image_new_from_stock(stock_id, 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 présentera une croix rouge sur fond blanc.
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 :
2.2 Modification de l'image.
Cette étape intervient lorsque vous avez créé une image vide ou lorsque vous voulez changer d'image. Les deux méthodes étudiées ici sont :
image.set_from_file(filename)
image.set_from_stock(stock_id, size)
Les paramètres sont les même que lors de la création d'un widget
GtkImage.
2.3 Programme exemple
# -*- Encoding: Latin-1 -*-
import gtk
def main():
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.set_default_size(320, 200)
window.set_title("GtkImage")
window.connect("destroy", gtk.main_quit, None)
vbox = gtk.VBox(False, 0)
window.add(vbox)
# Chargement d'une image a partir d'un fichier
image = gtk.image_new_from_file("./gtk.png")
vbox.pack_start(image, False, False, 5)
quit_btn = gtk.Button()
vbox.pack_start(quit_btn, True, False, 5)
quit_btn.connect("clicked", gtk.main_quit, None)
# Chargement d'une image a partir d'un GtkStockItem
quit_image = gtk.image_new_from_stock(gtk.STOCK_QUIT, gtk.ICON_SIZE_LARGE_TOOLBAR)
quit_btn.add(quit_image)
window.show_all()
gtk.main()
if __name__ == '__main__':
main()
Résultat :
