- Обновлено после возможности репликации проблемы.
Изначально я мог заставить его работать, привязав ключ к холсту, почему это сработало, я не знаю, но потом это тоже перестало работать, поэтому я продолжил исследование.
После настройки некоторых тестов мне удалось создать короткий код, который повторяет проблему:
from tkinter import *
class SomeClass:
def __init__(self, master):
self.can = Canvas(master, bg="gray")
self.can.pack()
thing = PhotoImage(file=("./img/thing.PNG"))
img = self.can.create_image(20, 20, image=thing)
stuff = self.can.find_all()
print(stuff)
app = Tk()
SomeClass(app) # Does not work
something = SomeClass(app) # Dos not work
# This part does work:
can = Canvas(app, bg="gray")
can.pack()
thing = PhotoImage(file=("./img/thing.PNG"))
img = can.create_image(20, 20, image=thing)
stuff = can.find_all()
print(stuff)
app.mainloop()
Во всех случаях img отображается как элемент в find_all (), но первые два не показывают его на холсте.
Также пытался поместить создание образа как метод с привязкой, чтобы активировать его, думая, что оно пошло не так во время инициализации. Это ничего не изменило.
Так что я здесь не так делаю?