如何在已经在 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.png
和 pic2.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")))
我想使用 tkinter 在 canvas 上显示两个图像 pic1.png
和 pic2.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")))