Python 如何在标签出现在tkinter中之前添加时间延迟?

Python 如何在标签出现在tkinter中之前添加时间延迟?,python,tkinter,delay,tk,timedelay,Python,Tkinter,Delay,Tk,Timedelay,我正在尝试重现口袋妖怪的红色战斗场景,我需要在第一个角色出现(好人)和第二个角色出现(坏人)之间延迟5秒。我已经尝试过time.sleep()方法,但是它在启动程序之前只需等待5秒(睡眠时间) #Add Person label = Label(image=diglett, bg= "white") label.place(x=20, y=80) #Add Enemy (I want a 5 second delay here...) label2 = Label(image=bad_guy,

我正在尝试重现口袋妖怪的红色战斗场景,我需要在第一个角色出现(好人)和第二个角色出现(坏人)之间延迟5秒。我已经尝试过time.sleep()方法,但是它在启动程序之前只需等待5秒(睡眠时间)

#Add Person
label = Label(image=diglett, bg= "white")
label.place(x=20, y=80)
#Add Enemy (I want a 5 second delay here...)
label2 = Label(image=bad_guy, bg= "white")
label2.place(x=200, y=20)
label2.after(100)
bad_guy_name = Label(root, text="Cabbage", bg='white')
bad_guy_name.place(x=35, y=30)
我已经看到另一篇关于此的堆栈溢出帖子,但我不确定如何在代码中实现此功能:


谢谢

您将创建一个函数来添加标签或更改标签,然后请求以后在之后使用
运行该函数:

#Add Enemy (I want a 5 second delay here...)
root.after(5000, showLabel)
首先,创建函数:

def showLabel():
    label = Label(root, ...)
    label.place()
接下来,从主代码通过
之后调用它:

#Add Enemy (I want a 5 second delay here...)
root.after(5000, showLabel)
这直接回答了你的问题,但你还有其他几个问题。第一,如果您调用
pack
,然后在同一个小部件上调用
place
pack
没有效果。小部件只能由
pack
place
grid
中的一个以及最后一个使用“wins”的小部件进行管理

如果您使用的是
place
,那么在五秒钟内放置一些东西应该会或多或少像您预期的那样有效。如果使用
pack
,请记住,它可能会导致窗口调整大小,如果没有任何选项,它将显示在其父窗口的底部


P>最后,根据你实际上想要做的事情,你可能想考虑立即创建和包装标签,但是它是空白的。然后,五秒钟后,您可以将文本从空白字符串更改为其他内容。

谢谢。这很有效。我把包也扔掉了。我对tkinter真的很陌生(大约两个星期),所以为这些愚蠢的错误感到抱歉:S。再次感谢。可能的副本