ce qui suit gagné t afficher quoi que ce soit:image tkinter ne pas afficher dépit de ne pas être collecté
def pic(name):
def p(image=[]): #keep a reference to the image, but only load after creating window
if not image:
image.append(PhotoImage("../pic/small/"+name+".png"))
return image[0]
def do(canvas, point, angle, size, fill, outline):
canvas.create_image(*point, image=p(), tag="visual")
return do
flame = pic("flame")
flame(canvas, (100, 200), 0, 30, "red", "blue")
La deuxième fois que je suis appelle flamme, p se souvient encore de son image. Aucune exception ne se produit, mais l'image n'apparaît pas.
cependant:
_pic2 = PhotoImage(file="../pic/small/flame.png")
canvas.create_image(300, 200, image=_pic2)
fonctionne
(je suis conscient qu'il ya des arguments inutilisés, mais pic a besoin de la même signature que d'autres fonctions qui en ont besoin
def do(canvas, point, *_):
serait tout aussi bon)
(pic, flamme, _pic2, toile) sont globales
Aren 't vous manque juste le paramètre de mot-clé 'file'? 'PhotoImage (file =" ... ")' au lieu de 'PhotoImage (" ... ")' Sans cela, le chemin est le "nom" de l'image. –