Bonjour,

dans ce premier programme j'affiche correctement les 2 images dans deux Frames différentes.
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()
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
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()
Et là, l'icone ne saffiche que dans la deuxième trame!
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