(«Ошибка атрибута: объект ‘PhotoImage’ не имеет атрибута ‘_PhotoImage__photo’ ) [Tkinter]

#python #tkinter

#python #tkinter

Вопрос:

Код:

 from tkinter import*
from PIL import Image,ImageTk

class Register:
    def __init__(self,root):
        self.root = root
        self.root.title("Registration Window")
        self.root.geometry("1350x700 0 0")

        self.bg = ImageTk.PhotoImage(file="Images/waterfall.jpg")
        bg = Label(self.root,image = self.bg).place(x=250,y=0,relwidth=1,relheight=1)

root = Tk()*emphasized text*
obj = Register(root)
root.mainloop()
  

Выше приведен небольшой фрагмент кода для создания регистрационной формы на python и получения следующей ошибки. Используя модуль tkinter в python, я создаю регистрационную форму, в то время как при установке фонового изображения в окне self.bg = ImageTk.PhotoImage(file="Images/waterfall.jpg") и возникновении ошибки я беру изображение из Интернета и устанавливаю для него высоту и ширину.

Ошибка:

 Traceback (most recent call last):
  File "d:Login with Databaseregister.py", line 16, in <module>
    obj = Register(root)
  File "d:Login with Databaseregister.py", line 10, in __init__
    self.bg = ImageTk.PhotoImage(file="Images/waterfall.jpg")
  File "C:PythonPython38libsite-packagesPILImageTk.py", line 89, in __init__
    image = _get_image_from_kw(kw)
  File "C:PythonPython38libsite-packagesPILImageTk.py", line 58, in _get_image_from_kw
    return Image.open(source)
  File "C:PythonPython38libsite-packagesPILImage.py", line 2878, in open
    fp = builtins.open(filename, "rb")
FileNotFoundError: [Errno 2] No such file or directory: 'Images/waterfall.jpg'
Exception ignored in: <function PhotoImage.__del__ at 0x000001928E23C430>
Traceback (most recent call last):
  File "C:PythonPython38libsite-packagesPILImageTk.py", line 118, in __del__
    name = self.__photo.name
AttributeError: 'PhotoImage' object has no attribute '_PhotoImage__photo'
  

Комментарии:

1. Вот важная часть: FileNotFoundError: [Errno 2] No such file or directory: 'Images/waterfall.jpg' . Скорее всего, файл не существует, или вы работаете не в том каталоге, в котором, по вашему мнению, находитесь.

2. я создал папку с именем login database, которая содержит одну папку изображений, содержащую 2 изображения и 1 файл с именем register.py для запуска этой программы все ресурсы находятся в 1 папке .. итак….

3. ошибка устранена спасибо человеку за помощь!!! @user2357112 поддерживает Monica

Ответ №1:

Я гость вместо того, чтобы использовать это.

 self.bg = ImageTk.PhotoImage(file="Images/waterfall.jpg")
bg = Label(self.root,image = self.bg).place(x=250,y=0,relwidth=1,relheight=1)
  

Попробуйте это.

 self.bg=ImageTk.PhotoImage(file="Images/waterfall.jpg")
self.bg_image=Label(self.root, image=self.bg).place(x=0, y=0, relwidth=1, relheight=1)
  

кроме того, дважды проверьте файл, в котором waterfall.jpg находится.