Я пытаюсь получить изображение в GUI. Что не так? - PullRequest
1 голос
/ 16 марта 2020

Я пытаюсь создать изображение в GUI, и я не понимаю, что не так. Я получаю сообщение об ошибке:

AttributeError: 'PhotoImage' object has no attribute '_PhotoImage__photo'

Как должен выглядеть мой код (особенно строка с my_img = ...)?

Мой код:

from tkinter import *
from PIL import ImageTk,Image

my_img = ImageTk.PhotoImage(Image.open("iu.jpeg"))
my_label = Label(image=my_img)
my_label.pack()


root = Tk()
root.title("ICON PRACTICE")
root.iconbitmap('iu.ico')

button_quit = Button(root, text = "EXIT", command=root.quit)
button_quit.pack()
root.mainloop()

Ответы [ 2 ]

0 голосов
/ 22 марта 2020

Виджет Label будет работать только после объявления root = Tk() (Tk() запускает базовый интерпретатор Tcl). Тогда все дочерние виджеты должны иметь root в качестве первого параметра (например, Label(root, text='hi')).

0 голосов
/ 16 марта 2020

Попробуйте сделать это, вероятно, потому что вы создаете объект root после открытия изображения и создания объекта фотографии.

import os
from tkinter import *
from PIL import ImageTk,Image

root= Tk()
i = Image.open("C:/path/to/the/image/directory/image.png") 
photo = ImageTk.PhotoImage(i)

root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...