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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# -*- coding: cp1252 -*-
import Tkinter as tk
import Image
import ImageTk
import os
 
#fonction d'affichage de l'image a traiter
def affichimg():
    global can,app,a
    image=Image.open('image.jpg')
    x,y=image.size
    if x<y:
        X,Y=int((x*600.0)/y),600
 
    elif x>y:
        X,Y=800,int((800*y)/x)
 
    image=image.resize((X,Y),Image.BICUBIC)
    photo=ImageTk.PhotoImage(image)
 
    can.destroy()    
    can=tk.Canvas(app,height=600,width=800,bg='black',relief=tk.FLAT,border=0)
    can.grid(rowspan=10,columnspan=10,
             row=1,column=1,pady=5,padx=5)
 
    img=can.create_image(400,300,image=photo)
 
    print x,y
    print X,Y
 
#Programme Principale
 
app=tk.Tk()
app.title('CompoGR')
app.configure(bg='black')
 
ouvrir=tk.Menubutton(text='Ouvrir')
ouvrir.grid(row=1,column=0)
menopen=tk.Menu(ouvrir)
menopen.add_command(label='Image',command=affichimg)
menopen.add_command(label='Travail en cours')
ouvrir.configure(bg='black',fg='white',menu=menopen)
 
option=tk.Menubutton(text='Options')
option.grid(row=2,column=0)
menop=tk.Menu(option)
menop.add_command(label='Paramétres')
menop.add_command(label='A Propos')
menop.add_command(label='Quitter',command=app.quit)
option.configure(bg='black',fg='white',menu=menop)
 
can=tk.Canvas(app,height=600,width=800,bg='black',relief=tk.FLAT,border=0)
can.grid(rowspan=10,columnspan=10,
         row=1,column=1,pady=5,padx=5)
 
tk.Button(app,text='Afficher Image',command=affichimg,
          width=10,bg='dark grey').grid(row=11,column=10,
                                                   padx=5,pady=5,sticky=tk.S)
 
 
 
#gestionnaire d'évènement
app.mainloop()
app.destroy()
Mon soucis est que mon image s'affiche mais disparait aussitot.
si je ferme mon appli (Option >> Fermer), l'interface Tk se ferme mais il apparait qu'un nouveau process reste en éxécution dans la console!?

J'ai changé mon code pour afficher 'image' a la place de 'imaff' (pensant que ca venait de l'utilisation de 'resize()') mais le résultat est pareil.

quelqu'un peut il m'aider?