我試圖做一個番茄鍾計時器,它將顯示不同的倒計時三個按鈕選項之一的點擊。設置tkinter標籤顯示倒數計時器
這裏的問題是,每次我點擊一個按鈕後,先前點擊一個按鈕,該標籤掙扎與顯示哪個定時器。它試圖同時顯示兩個計時器倒計時。
我需要標籤停止顯示第一個按鈕的計時器倒計時,當我點擊另一個按鈕。這裏是我的代碼:
from tkinter import *
class Application(Frame):
def __init__(self,master):
super(Application,self).__init__(master)
self.pack()
self.createWidgets()
def createWidgets(self):
self.labelvariable = StringVar()
self.labelvariable.set("25:00")
self.thelabel = Label(self,textvariable = self.labelvariable,font=('Helvetica',50))
self.thelabel.pack(side=TOP)
self.firstButton = Button(self,text="pomodoro",command=self.pomodoro)
self.firstButton.pack(side=LEFT)
self.secondButton = Button(self,text="short break",command=self.shortBreak)
self.secondButton.pack(side=LEFT)
self.thirdButton = Button(self,text="long break",command=self.longBreak)
self.thirdButton.pack(side=LEFT)
def pomodoro(self):
countdown(1500)
def shortBreak(self):
countdown(300)
def longBreak(self):
countdown(600)
def countdown(timeInSeconds):
mins,secs = divmod(timeInSeconds,60)
timeformat = "{0:02d}:{1:02d}".format(mins,secs)
app.labelvariable.set(timeformat)
root.after(1000,countdown,timeInSeconds-1)
if __name__ == '__main__':
root = Tk()
root.title("Timer")
app = Application(root)
root.mainloop()
使用after_cancel()取消前()調用之後http://effbot.org/tkinterbook/widget.htm我建議您等待像1/10秒,併發出另一個after_cancel( ),以防在程序在函數中,但在after()語句之上的地方點擊。 –