Я новичок в python и возился с Tkinter, а теперь и с Pillow.
Я пытаюсь сделать изображение атрибутом класса, а затем открыть его как изображение вэтикетка Tkinter.Вот пример кода.Мои окна Tkinter работают как раз тогда, когда я пытаюсь сделать именно это, поэтому, если в приведенном ниже коде Tkinter есть какие-либо ошибки, это просто в результате написания сэмплов.
class PicTest:
def __init__(self, name, image):
self.name = name
self.image = image
foo = PicTest('foo', Image.open('foo.png'))
Это открывает изображениев новом окне
foo.image.show()
Но это выдает ошибку, когда я пытаюсь его запустить.
def testwindow:
root = Tk()
<necessary code>
foo_testlabel = Label(root, image=foo.image, height=xxx, width=xxx)
foo_testlabel.pack()
mainloop()
Я получаю ошибку:
_tkinter.TclError: image "<PIL.PngImagePlugin.PngImageFile image mode=RGBA size=119x96 at 0x10D9FE240>" doesn't exist
Я успешно достиг результата, я хочу НЕ использовать этот метод (используя PhotoImage (file = xxxx), чтобы открыть все, что я хочу в моем определении Tkinter), но в идеале изображение является атрибутом объекта, поэтому я могу использовать его в другом месте.
Есть мысли о том, как это сделать?
Спасибо!