Изображения tkinter не открываются в функцииPython

Программы на Python
Anonymous
Изображения tkinter не открываются в функции

Сообщение Anonymous »

У меня есть класс графического интерфейса, и когда вы его запускаете, он должен открыть окно 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

Вернуться в «Python»