#python #python-3.x #image #user-interface #tkinter
#python #python-3.x #изображение #пользовательский интерфейс #tkinter
Вопрос:
я пытаюсь установить изображение во 2-е окно tkinter, которое открывается при нажатии на кнопку,
но оно показывает ошибку
_tkinter.TclError: изображение «pyimage4» не существует
def new_window():
if(user.get()==username and passw.get()==password):
window= Tk()
window.geometry("%dx%d 0 0"%(w,h))
image_new = Image.open("E:\schoolmng\try1.jpg")
photo = ImageTk.PhotoImage(image_new)
panel2 = Label(window, image=photo)
panel2.pack()
else:
messagebox.showinfo("error","wrong password or username")
Ответ №1:
Просто измените window = Tk()
на window = Toplevel()
. Причина возникновения ошибки заключается в том, что Tk()
запущено два экземпляра, должно быть запущено не более 1 экземпляра Tk()
. Поэтому замена его на Toplevel()
исправит эту проблему.
СОВЕТ:
-
Вы получите дополнительную проблему отсутствия изображения, отображаемого здесь, поскольку изображение будет собираться мусором, чтобы исправить это, вы должны сохранить ссылку на изображение, либо указав
global photo
поверх функции, либоpanel2.image = photo
. Любое из этих слов исправит ошибку. -
Решение 1:
def new_window():
global photo
....
- Решение 2:
...
photo = ImageTk.PhotoImage(image_new)
panel2 = Label(window, image=photo)
panel2.image = photo
panel2.pack()
...
Надеюсь, ваши проблемы решены, если возникнут еще какие-либо ошибки, дайте мне знать.
Приветствия
Комментарии:
1. теперь ошибки нет, спасибо, но во 2-м окне по-прежнему нет изображения
2. @Robin Я обновил ответ. Был бы признателен, если бы вы могли пометить это как ответ
3. спасибо, это сработало, я новичок в stackoverflow, поэтому, пожалуйста, скажите мне, как я могу увеличить ваши баллы