Passage d'argument entre classes
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:
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:
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