ошибка pyimage4 при попытке установить изображение во 2-е окно

#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, поэтому, пожалуйста, скажите мне, как я могу увеличить ваши баллы