插入图像 tkinter

inserting images 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)

当我尝试插入第一张图片时它工作正常但是当我在编辑器中插入第二张图片时,第一张图片变得不可见或变白

First image Second image

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

这是因为您对图像使用了相同的全局变量img。 When new image is selected and assigned to img, then there is no variable referencing the previous image and so it will be garbage collected.

改为使用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])