簡體   English   中英

Tkinter 60秒定時器

[英]Tkinter 60 seconds timer

我正在嘗試為一個項目做一個 60 計時器,但我被困在這里。 每次我通過 go 時,我的變量 temp 都不會在我的 window 上自行更新。 任何幫助都會很棒。

import tkinter

root=tkinter.Tk()
root.geometry("300x250")
root.title("Time Counter")

Frame=tkinter.Frame(root)
Frame.pack(side=tkinter.TOP)

Label1=tkinter.Label(Frame,text="Timer")
Label1.pack(side=tkinter.LEFT)

def timer(*args,**kwargs):
    temp=int(temps.get())
    while temp>-1:
        temps.set(str(temp))
        root.update()
        time.sleep(1)
        temp-=1

temps=tkinter.StringVar()
temps.set("60")
temps.trace("w",timer)
label=tkinter.Label(Frame,textvariable=temps)
label.pack(side=tkinter.LEFT)
label.after(1000,timer)

root.mainloop()

如果您只刪除traceafter並直接調用 function,它工作正常:

temps=tkinter.StringVar()
temps.set("60")
label=tkinter.Label(Frame,textvariable=temps)
label.pack(side=tkinter.LEFT)
timer()

timer() function 添加到 StringVar 的trace中會導致每當temps的值發生變化時都會調用 function。 這是行不通的,因為 function 本身會改變值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM