在 tkinter 中的操作之间放置暂停

问题描述

我正在编写一些代码来玩扑克,当发牌时,我希望在显示每张牌之间有一个短暂的停顿。我已经看到其他建议使用 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))

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...