Bonjour,
dans ce premier programme j'affiche correctement les 2 images dans deux Frames différentes.
Je me suis dit que je pourrai optimiser ce bout de programme avec une boucle for :
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 from tkinter import * from PIL import ImageTk, Image import requests , base64 root=Tk() trame_1=LabelFrame(root,text='Prévisions 1 ',bg='white',\ labelanchor = NW,height=250,width=700) trame_1.grid() Label(trame_1,text='Texte dans la trame 1').grid(column=1) icon_url = ('http://openweathermap.org/img/wn/04d@4x.png') im = Image.open(requests.get(icon_url, stream=True).raw) ph_plus = ImageTk.PhotoImage(im) pic_label = Label(trame_1,image=ph_plus,bg='white') pic_label.grid(column=2) trame_2=LabelFrame(root,text='Prévisions 2 ',bg='white',\ labelanchor = NW,height=250,width=700) trame_2.grid() Label(trame_2,text='Texte dans la trame 2').grid(column=1) icon_url = ('http://openweathermap.org/img/wn/04d@4x.png') im = Image.open(requests.get(icon_url, stream=True).raw) ph_plus2 = ImageTk.PhotoImage(im)# le 2 de ph_plus fait la différence !! pic_label = Label(trame_2,image=ph_plus2,bg='white') pic_label.grid(column=2) root.mainloop()
Et là, l'icone ne saffiche que dans la deuxième trame!
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 from tkinter import * from PIL import ImageTk, Image import requests , base64 root=Tk() for i in range(1,3): trame_i=LabelFrame(root,text=('Prévisions '+str(i)),bg='white',\ labelanchor = NW,height=250,width=700) trame_i.grid() Label(trame_i,text='Texte dans la trame '+str(i)).grid(column=1) icon_url = ('http://openweathermap.org/img/wn/04d@4x.png') im = Image.open(requests.get(icon_url, stream=True).raw) ph_plus_i = ImageTk.PhotoImage(im) pic_label = Label(trame_i,image=ph_plus_i,bg='white') pic_label.grid(column=2) root.mainloop()
Pourtant j'ai bien deux images différentes en mémoire:
im: <PIL.PngImagePlugin.PngImageFile image mode=RGBA size=200x200 at 0x25389B12F10>
pyimage1
et
im: <PIL.PngImagePlugin.PngImageFile image mode=RGBA size=200x200 at 0x25389B12F70>
pyimage2
Où est mon erreur?
Merci de votre aide
Partager