Код: Выделить всё
from tkinter import *
from PIL import ImageTk
def show():
path = r'P:\Greece Slideshow\01001-MJR_20240511_5110080-Edit.jpg'
pimg = ImageTk.PhotoImage(file=path)
image_label.configure(image=pimg)
root.pimg = pimg # prevent garbage collection
root = Tk()
window2 = Tk()
# image_label = Label(root) # works if label is in main window
image_label = Label(window2) # fails if label is in secondary window
# message is "_tkinter.TclError: image "pyimage1" doesn't exist"
image_label.pack()
root.after(500, show)
root.mainloop()
- Код работает, если метка находится в главном окне, но не в том случае, если она во вторичном окне.
- Как показано, я назначил PhotoImage для root.pimg, чтобы он не собирался мусором. Я пробовал множество вариантов этого (например, глобальную переменную, свойство других постоянных объектов), но ничего не помогает.
- Я пробовал Canvas вместо метки, но получаю точно такое же сообщение об ошибке.
Подробнее здесь: https://stackoverflow.com/questions/786 ... ary-window