如何在已经在 tkinter window 中显示的旧图像下延迟一段时间后显示新图像?

How to display the new image after some time delay under the old image that is already displaying in tkinter window?

我想使用 tkinter 在 canvas 上显示两个图像 pic1.pngpic2.png。第一张图片 (pic2.png) 已经显示在 tkinter window 上。但是,第二张图片(pic1.png)将在 1 秒后出现,并且会在第一张图片后面。

为了实现这个,我写了这段代码,

from tkinter import *
from PIL import Image, ImageTk

root = Tk()

frame = Frame(root)
frame.pack()

canvas = Canvas(frame, width=250, height=250, bd=0, highlightthickness=0, relief='ridge')
canvas.pack()

my_pic1 = PhotoImage(file="my_pic1.png")
frame.after(1000, lambda : canvas.create_image(50,50,image=my_pic1, anchor=NW, tag="A"))

my_pic2 = PhotoImage(file="my_pic2.png")
canvas.create_image(50,50,image=my_pic2, anchor=NW, tags="B")

canvas.tag_raise("B")
canvas.tag_lower("A")

root.mainloop()

但是我在将第二张图片 (pic1.png) 放在第一张图片 (pic2.png) 后面时遇到了问题。我正在实现的是第二张图片 (pic1.png) 出现在第一张图片 (pic2.png) 上方。请在我的代码中帮助我。

执行canvas.tag_lower("A")时,标记为“A”的图像尚未创建,因为它计划在一秒后创建。

您应该在创建图像后调用它:

frame.after(1000, lambda: (canvas.create_image(50,50,image=my_pic1, anchor=NW, tag="A"), canvas.tag_lower("A")))