У меня есть класс графического интерфейса, и когда вы его запускаете, он должен открыть окно tkinter верхнего уровня с изображением. Это работает, когда вы просто запускаете класс с помощью test = GUI(), но когда вы запускаете класс ВНУТРИ функции, изображения отказываются загружаться.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: ЕСЛИ ВЫ ЗАПУСТИТЕ КОД НИЖЕ. ВАМ НЕОБХОДИМО ИМЕТЬ СОБСТВЕННОЕ ИЗОБРАЖЕНИЕ И ПУТЬ К ИЗОБРАЖЕНИЮ
Код: Выделить всё
import tkinter as tk
from PIL import Image,ImageTk
#GUI CLASS
class GUI:
def __init__(self):
self.toplevel = tk.Toplevel()
self.img = ImageTk.PhotoImage(Image.open(IMAGE_PATH))
self.img_label = tk.Label(self.toplevel,image=self.img)
self.img_label.place(x=0,y=0)
#open the gui with a FUNCTION --> image doesn't open
def open_GUI():
test = GUI()
#root window
root = tk.Tk()
tk.Label(root,text="This is the root").pack()
#tests
test = GUI()
open_GUI()
root.mainloop()
Когда вы запустите приведенный выше код, должно открыться три окна. Один из них — корень, и есть текст, который можно сказать. И два верхних уровня. Я ожидаю, что в двух окнах должно быть изображение, а в одном — текст (корень). Однако на самом деле происходит следующее: есть один с текстом, другой с изображением (это жестко запрограммированное изображение), а третий без изображения (тот, который запускает функцию).
Подробнее здесь:
https://stackoverflow.com/questions/789 ... a-function