我对下面的 tkinter 脚本有一个奇怪的问题。如果执行了注释外的行,则它按预期显示图像。当我调用该函数时,它不会。主窗口我打开了,没有其他事情发生。不过,“函数调用”正在命令行管理程序中打印。我在这里是否遗漏了有关 tkinter 和/或功能的基本内容?我发现了一些关于IDLE的奇怪行为的报告,我也正在使用这些报告,这可能是原因吗?昨天我遇到了一些问题,因为我 tkinter.py 调用文件,与模块相同,但位于不同的文件夹中。像更多的人一样,这导致了使用 IDLE 打开脚本时出现问题。我用下面的代码写了一个新文件,问题仍然存在。from tkinter import *import tkinter as tkfrom PIL import Image, ImageTkfrom pathlib import Pathwindow = Tk()window.title('xy')window.geometry('600x400')path = Path("C:/Python/png/")def function_a(): print('function called') img = Image.open(str(path)+'\\'+'pic'+'.png') img = img.resize((300,200), Image.ANTIALIAS) img = ImageTk.PhotoImage(img) background_label = tk.Label(window, image=img) background_label.pack()function_a()##img = Image.open(str(path)+'\\'+'pic'+'.png')##img = img.resize((300,200), Image.ANTIALIAS)##img = ImageTk.PhotoImage(img)##background_label = tk.Label(window, image=img)##background_label.pack()window.mainloop
1 回答
慕村9548890
TA贡献1884条经验 获得超4个赞
照片会被垃圾回收删除,因为它是一个局部变量。若要修复函数末尾的此添加,这将阻止垃圾回收删除图像。img
background_label.img = img
添加回答
举报
0/150
提交
取消