我已經寫了一些python計時器的代碼,但是當我運行它時,我得到一個錯誤,但事情是我不知道該怎麼做,因此我搜索了所有後來到這裏尋求幫助互聯網的幫助,但我找不到任何符合我的問題。tkinter的基本計時器
以下是錯誤:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Program Files\Python33\lib\tkinter\__init__.py", line 1475, in __call__
return self.func(*args)
File "C:\Users\Public\Documents\Programming\Timer.py", line 27, in start
sec = sec + 1
UnboundLocalError: local variable 'sec' referenced before assignment
這是我的代碼:
# Import Modules
from tkinter import *
import time
# Window Setup
root = Tk()
root.title('Timer')
root.state('zoomed')
# Timer Variables
global sec
time_sec = StringVar()
sec = 0
# Timer Start
def start():
while 1:
time.sleep(1)
sec = sec + 1
time_sec.set(sec)
start()
# Timer Setup
Label(root,
textvariable=time_sec,
fg='green').pack()
Button(root,
fg='blue',
text='Start',
command=start).pack()
# Program Loop
root.mainloop()
任何人都可以幫我嗎?
在此先感謝!
我非常感謝關於使用'after'方法的提示,因爲它應該更高效並且可能更準確;但是,您可以使用事件來防止凍結和崩潰,同時仍然使用'sleep'保持'while'循環。我實際上做了這樣一個計時器,但是我不知道'after'方法,那麼。我希望轉換到它將允許更小的間隔。 – Shule