0

I'm trying to write a timer with tkinter.

And here's my class program of timer

class Timer:
def __init__(self, root, cv):
    self.sec = 0
    self.stop = 0
    self.label = tk.Label(root, width = 15, height = 1, text = "time:"+"{}".format(str(self.sec))+"s", bg= "GhostWhite")
    self.label.config(font = ("helvetica", 8))
    cv.create_window(300, 14, window = self.label)
    self.label.after(1000, self.refresh)

def refresh(self):
    self.sec += 1
    self.label.configure(text="time:"+"{}".format(str(self.sec))+"s")
    if self.stop == 0:
        self.label.after(1000, self.refresh)
        
def halt(self):
    self.stop = 1
    
def reset(self):
    self.sec = 0
    self.stop = 0
    self.label.after(1000, self.refresh)

The problem is, the timer runs faster each time the reset method is called. I try to figure out the problem but I just don't see anything wrong. Any idea?

0 Answers0