问题描述
我正在编写一些代码来玩扑克,当发牌时,我希望在显示每张牌之间有一个短暂的停顿。我已经看到其他建议使用 sleep 或 after 的答案,但是我发现这些答案会暂停程序,但会同时显示卡片。我想在每张卡片之间停顿一下。这是我尽可能精简的代码。
from tkinter import *
import time
x = Tk()
x.state('zoomed')
def lay():
card1.place(relx=0.2,rely=0.2) # here I want to put a short pause
#time.sleep(1) or x.after(1000)
card2.place(relx=0.4,rely=0.2)
card1 = 'ad.gif'
card2 = '4c.gif'
a = PhotoImage(file='ad.gif')
card2 = Label(x,image=a)
b = PhotoImage(file='4c.gif')
card1 = Label(x,image=b)
Button(x,text='LAY CARDS',command=lay).place(relx=0.5,rely=0.5)
x.mainloop
解决方法
您可以使用 .after()
在一秒后显示 card2
:
def lay():
card1.place(relx=0.2,rely=0.2)
# show card2 one second later
x.after(1000,lambda: card2.place(relx=0.4,rely=0.2))