Встраивание изображения в виджет Tkinter Canvas с использованием PIL - PullRequest
4 голосов
/ 31 января 2011

Я пытаюсь встроить изображение в холст Tkinter, используя PIL, и по какой-то причине оно не отображается. Есть идеи?

Нет ошибок или предупреждений. Просто пустое окно Tk.

Мой код:

import Tkinter
from PIL import ImageTk, Image


class image_manip(Tkinter.Tk):
    def __init__(self,parent):
        Tkinter.Tk.__init__(self,parent)

        self.ImbImage = Tkinter.Canvas(self)
        self.ImbImage.pack()

        i = ImageTk.PhotoImage(Image.open('test.png'))
        self.ImbImage.create_image(0, 0, image=i)

def run():
    image_manip(None).mainloop()
if __name__ == "__main__":
    run()

1 Ответ

7 голосов
/ 31 января 2011

Я предполагаю, что изображение становится сборщиком мусора. Попробуйте сохранить ссылку на «i» (например, self.image = i)

...