擅长:python、mysql、java
<p>您不需要使用线程。第二,除非在单独的线程中使用<code>sleep()</code>,否则决不能在tkinter应用程序中使用sleep。<code>sleep()</code>中断主循环,会导致tkinter冻结,直到睡眠结束。这是99.9%的时间不是你想做的,所以在这里你应该对任何定时事件使用<code>after()</code>。你知道吗</p>
<p>您可以简单地为每个图像创建每个标签,然后使用跟踪变量将正确的标签提升到顶部。你知道吗</p>
<p>下面是一个简单的例子。你知道吗</p>
<pre><code>from tkinter import *
root = Tk()
root.geometry("200x200")
root.title("testing")
current_image = ""
black_image = PhotoImage(file="black.gif")
white_image = PhotoImage(file="white.gif")
black_label = Label(root, image=black_image)
white_label = Label(root, image=white_image)
black_label.image = black_image
white_label.image = white_image
black_label.grid(row=0, column=0)
white_label.grid(row=0, column=0)
def loop_images():
global current_image, black_image, white_image
if current_image == "white":
black_label.tkraise(white_label)
current_image = "black"
else:
white_label.tkraise(black_label)
current_image = "white"
root.after(100, loop_images)
loop_images()
root.mainloop()
</code></pre>