如何为 Tkinter 中的按钮添加时间延迟?
How to add a time delay to a button in Tkinter?
首先,我想指出我是 tkinter 和一般编码的新手,如果我犯了大错误,我深表歉意。
我试图在单击按钮后使图像出现一小段时间,因此我想在图像的创建和删除之间添加一个延迟。
这是代码:
fenetre=Tk()
Cadre1=Frame(fenetre, borderwidth=2,)
Cadre1.pack(side=RIGHT)
Cadre2=Frame(fenetre, borderwidth=2,)
Cadre2.pack(side=LEFT)
def rond():
étoile=canvas.create_polygon(480,270,500,260,510,240,520,260,540,270,520,280,510,300,500,280)
canvas.after(1000, canvas.delete(étoile))
canvas = Canvas(Cadre1, width=1500, height=1080, background='yellow')
canvas.pack()
bouton=Button(Cadre2,text='Attaque',command=rond ,relief=RAISED)
bouton.pack()
fenetre.mainloop()
我遇到的主要问题是“rond()”函数。 time.sleep 和 master.after 我都试过了,但它们似乎都只是简单地延长了我无法点击按钮的时间,而不是延迟这两个部分的功能。我想我不太明白这些功能是如何工作的,但我不知道要改变什么。
提前感谢您的回答
这样就可以了。
after
函数需要一个函数作为参数,这就是我使用 lambda 函数的原因
def rond():
print('Command accessed')
etoile=canvas.create_polygon(480,270,500,260,510,240,520,260,540,270,520,280,510,300,500,280)
canvas.after(2000, lambda: canvas.delete(etoile))
首先,我想指出我是 tkinter 和一般编码的新手,如果我犯了大错误,我深表歉意。 我试图在单击按钮后使图像出现一小段时间,因此我想在图像的创建和删除之间添加一个延迟。 这是代码:
fenetre=Tk()
Cadre1=Frame(fenetre, borderwidth=2,)
Cadre1.pack(side=RIGHT)
Cadre2=Frame(fenetre, borderwidth=2,)
Cadre2.pack(side=LEFT)
def rond():
étoile=canvas.create_polygon(480,270,500,260,510,240,520,260,540,270,520,280,510,300,500,280)
canvas.after(1000, canvas.delete(étoile))
canvas = Canvas(Cadre1, width=1500, height=1080, background='yellow')
canvas.pack()
bouton=Button(Cadre2,text='Attaque',command=rond ,relief=RAISED)
bouton.pack()
fenetre.mainloop()
我遇到的主要问题是“rond()”函数。 time.sleep 和 master.after 我都试过了,但它们似乎都只是简单地延长了我无法点击按钮的时间,而不是延迟这两个部分的功能。我想我不太明白这些功能是如何工作的,但我不知道要改变什么。
提前感谢您的回答
这样就可以了。
after
函数需要一个函数作为参数,这就是我使用 lambda 函数的原因
def rond():
print('Command accessed')
etoile=canvas.create_polygon(480,270,500,260,510,240,520,260,540,270,520,280,510,300,500,280)
canvas.after(2000, lambda: canvas.delete(etoile))