Bonjour a tous

Voila mon probleme, je souhaite créer une simple application contenant seulement une barre de menu avec un seul menu ("fichier") et dedans seulement "ouvrir" et un canevas
lorsque l'utilisateur clique sur "ouvrir" il faudrait que mon image s'affiche dans le canevas mais cela ne marche pas...
aidez moi

voici le code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
#! /usr/bin/env python 
# -*- coding: Latin-1 -*- 
 
import tkFileDialog 
from Tkinter import * 
 
def ouvrir(): 
photo = PhotoImage(file='toto.gif') 
item = can1.create_image(250, 250, image = photo) 
can1.pack() 
 
fen = Tk() 
fileMenu = Menubutton(fen, text = 'Fichier') 
fileMenu.pack(side = TOP) 
me1 = Menu(fileMenu) 
me1.add_command(label = 'Ouvrir', command = ouvrir) 
fileMenu.configure(menu = me1) 
 
can1 = Canvas(fen, width = 500, height = 500, bg = 'white') 
 
fen.mainloop

PS:
lorsque je mets l'affichage de l'image dans le canevas dans le main et non dans ma fonction ouvrir ca marche tres bien ca l'affiche de suite. Pourquoi? Quelle est la solution?
est ce possible d'afficher toutes sortes d'images (JPG, GIF, PPM, etc...) ?