Хорошо, у меня есть проект в tKinter, который включает в себя ярлык с изображением и поле ввода. Что мне нужно сделать, это то, что изображение меняется в зависимости от текста в поле ввода. Вот соответствующий код:
from tkinter import *
def go():
art = PhotoImage(file=str(entry.get() + ".png"))
portrait = Label(root, image=art)
portrait_1.grid(row=0, column=0)
print(z1)
root = Tk()
root.title("Window Title")
art = PhotoImage(file="image1_.png")
portrait = Label(root, image=art)
portrait1.grid(row=0, column=0)
entry = Entry(root)
entry.grid(row=1, column=0)
goButt = Button(root, text="Go", command=go)
goButt.grid(row=1, column=1)
root.mainloop()
Я пробовал много разных способов заставить это работать (с обновлением изображения этикетки), но это единственный, который был успешным.
Вы можете заметить команду print(z1)
в функции go()
. z1
не является определенной переменной и не используется где-либо еще в коде, но без нее нажатие кнопки Go
удаляет старое изображение, но оставляет метку пустой (т.е. новое изображение не загружается). Удаление этого бита кода или определение z1
любым способом (например, z1 = 1
) делает то же самое.
Пока что наличие print(z1)
никоим образом не влияет на проект, но его присутствие там немного раздражает. Мне было интересно, может ли кто-нибудь объяснить , почему проект, кажется, работает только с этим битом кода (и почему он работает только, если он не определен), и есть ли способ избавиться от него безопасно.