texto font entry ejemplos cuadro botones python image tkinter tkinter-canvas

python - font - ¿Por qué la imagen de Tkinter no aparece si se creó en una función?



label tkinter (1)

Este código funciona:

import tkinter root = tkinter.Tk() canvas = tkinter.Canvas(root) canvas.grid(row = 0, column = 0) photo = tkinter.PhotoImage(file = ''./test.gif'') canvas.create_image(0, 0, image=photo) root.mainloop()

Me muestra la imagen.

Ahora, este código se compila pero no me muestra la imagen, y no sé por qué, porque es el mismo código, en una clase:

import tkinter class Test: def __init__(self, master): canvas = tkinter.Canvas(master) canvas.grid(row = 0, column = 0) photo = tkinter.PhotoImage(file = ''./test.gif'') canvas.create_image(0, 0, image=photo) root = tkinter.Tk() test = Test(root) root.mainloop()


La photo variable es una variable local que obtiene la basura recogida después de que se crea una instancia de la clase. Guarde una referencia a la foto, por ejemplo:

self.photo = tkinter.PhotoImage(...)

Si realiza una búsqueda en Google en "tkinter image does not display", el primer resultado es este:

http://effbot.org/pyfaq/why-do-my-tkinter-images-not-appear.htm