我试图做一个番茄钟计时器,它将显示不同的倒计时三个按钮选项之一的点击。设置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()语句之上的地方点击。 –