首先,我想指出,我是 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 但它們似乎只是延長了我無法點擊按鈕的時間,而不是延遲功能的兩個部分。我想我不太明白這些功能是如何作業的,但我不知道要改變什么。
預先感謝您的回答
uj5u.com熱心網友回復:
這將解決問題。該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))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/393599.html
