【发布时间】:2020-12-11 18:54:34
【问题描述】:
def display_rain():
rain_image = Image.open("./images/rain_jpeg.jpg")
rain_resized = rain_image.resize((250,250), Image.ANTIALIAS)
rain_tk = ImageTk.PhotoImage(rain_resized)
rain_label = tk.Label(root, image = rain_tk)
rain_label.grid(row = 0, column = 0)
rain_label.pack()
display_rain()
代码在函数外部运行良好,但在函数内部似乎根本不运行。我试过重启 Python 并重命名函数。
【问题讨论】:
-
将
global root添加到函数的第一行,看看会发生什么。另外,选择pack或grid,而不是两者。此外,将图像与您要加载的任何其他图像一起存储在全局字典中。按照您的操作方式,您的图像是垃圾收集的主要候选对象。 -
您能说得更具体些吗?当它起作用时究竟会发生什么(例如,你期望它做什么),当它不起作用时会发生什么?是否有任何错误消息?
-
@MichaelGuidry 这不会有任何区别
-
@AryanParekh - 我对垃圾收集的编辑可能会。
-
@MichaelGuidry 我不确定,因为在根目录中有对该标签的引用,我认为,所以垃圾收集器不应该删除它....
标签: python function tkinter photoimage