Bonjour,
je cherche à faire un arrosage automatique avec un ESP32 avec micropython, qui sera connecté à un serveur python qui recevra les prévisions météo du site Openweathermap.
J'ai une interface Tkinter pour la collecte de ces informations et je butte sur l'affichage d'une image.png.
J'ai le code suivant qui fonctionne :
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 from tkinter import * from PIL import Image, ImageTk import requests class Weather(object): def icone(self): icon_url = ('http://openweathermap.org/img/wn/01d@4x.png') im = Image.open(requests.get(icon_url, stream=True).raw) self.ph = ImageTk.PhotoImage(im) self.text_label='titi' root=Tk() trame=LabelFrame(root,bg='white',height=250,width=700) trame.grid() test=Weather() test.icone() label=Label(trame,text=test.text_label).grid() pic_label = Label(trame,image=test.ph,bg='white') pic_label.grid()
Le label 'titi' et l'icone s'affichent, par contre si je crée une autre classe :
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 from tkinter import * from PIL import Image, ImageTk import requests class Weather(object): def icone(self): icon_url = ('http://openweathermap.org/img/wn/01d@4x.png') im = Image.open(requests.get(icon_url, stream=True).raw) self.ph = ImageTk.PhotoImage(im) self.text_label='titi' class Affiche(object): def trame(self): root=Tk() trame=LabelFrame(root,bg='white',height=250,width=700) trame.grid() test=Weather() test.icone() label=Label(trame,text=test.text_label).grid() pic_label = Label(trame,image=test.ph,bg='white') pic_label.grid() toto=Affiche() toto.trame()
Cette fois le label 'titi' s'affiche mais pas l'image .png
L'argument 'titi' passe bien d'une classe à l'autre mais pas l'image.
Avez-vous une solution?
Merci d'avance
Partager