我使用以下代码在我的Tkinter GUI上显示图像,但只显示空白帧。
import Tkinter as tk class my_gui(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
img = tk.PhotoImage(file=PATH_TO_GIF)
panel = tk.Label(self, image = img)
panel.grid()
app = my_gui()
app.mainloop()
但是,以下代码有效:
import Tkinter as tk
root=tk.Tk()
img = tk.PhotoImage(file=PATH_TO_GIF)
panel = tk.Label(root, image = img)
panel.grid()
root.mainloop()
知道第一个脚本的问题是什么?
答案 0 :(得分:1)
__init__()
函数结束后,您创建的小部件将被丢弃。要解决此问题,请将它们保存为self
的实例变量:
import Tkinter as tk
class my_gui(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.img = tk.PhotoImage(file=PATH_TO_GIF)
self.panel = tk.Label(self, image = self.img)
self.panel.grid()
app = my_gui()
app.mainloop()
答案 1 :(得分:0)
@SimranjotSingh,尝试做的是在课堂上显示图像。 mainloop函数专门用于父窗口或框架。如果您需要调用类的实例,则应将其称为:
Instance_name = class_name(desired parameters)
但是在程序中,您需要将图像转换为标签而不是直接转到根/窗口。
您还可以查看以下内容: