插入图像tkinter



最近我正在使用Python的Tkinter库开发一个项目文本编辑器。我试图制作一个函数,在文本区域插入图像。

def insertImage():
select_image = filedialog.askopenfilename(title="Select your image",filetypes=[("Image Files", "*.png"), ("Image Files", "*.jpg")])
global img
img = ImageTk.PhotoImage(file=select_image)
content_text.image_create(END, image=img)

当我试图插入第一个图像时,它工作得很好,但当我在编辑器中插入第二个图像时时,第一个图像变为不可见或白色

第一个图像第二个图像

我已经导入了所有必要的库,如tkinter、filedialog、PIL等。你能告诉我的代码中有什么问题吗?或者可以提供正确的解决方案。提前感谢!!

这是因为您对图像使用了相同的全局变量img。当选择新图像并将其分配给img时,则没有变量引用前一个图像,因此它将被垃圾收集。

使用list来存储打开的图像:

imagelist = []
def insertImage():
select_image = filedialog.askopenfilename(title="Select your image",filetypes=[("Image Files", "*.png"), ("Image Files", "*.jpg")])
if select_image:
imagelist.append(ImageTk.PhotoImage(file=select_image))
content_text.image_create(tk.END, image=imagelist[-1])

最新更新