|
1 | 1 | from tkinter import * |
2 | 2 | import tkinter as tk |
3 | 3 |
|
| 4 | +def fmt_time(seconds: int) -> str: |
| 5 | + seconds = max(0, int(seconds)) |
| 6 | + m, s = divmod(seconds, 60) |
| 7 | + return f"{m:02d}:{s:02d}" |
| 8 | + |
| 9 | + |
4 | 10 | class Application(Frame): |
5 | 11 | def __init__(self,master): |
6 | 12 | super(Application,self).__init__(master) |
@@ -39,7 +45,9 @@ def createWidgets(self): |
39 | 45 | self.someFrame.pack(side=TOP) |
40 | 46 |
|
41 | 47 | self.labelvariable = StringVar() |
42 | | - self.labelvariable.set("") |
| 48 | + self.labelvariable.set(fmt_time(0)) |
| 49 | + |
| 50 | + |
43 | 51 |
|
44 | 52 | self.thelabel = Label(self,textvariable = self.labelvariable,font=('Helvetica',50)) |
45 | 53 | self.thelabel.pack(side=TOP) |
@@ -80,14 +88,14 @@ def closeApp(self): |
80 | 88 | def countdown(self, timeInSeconds, start=True): |
81 | 89 | if timeInSeconds == 0: |
82 | 90 | self._starttime=0 |
83 | | - self.labelvariable.set("0") |
| 91 | + self.labelvariable.set(fmt_time(0)) |
84 | 92 | return |
85 | 93 | if start: |
86 | 94 | self._starttime = timeInSeconds |
87 | 95 | if self._paused: |
88 | 96 | self._alarm_id = self.master.after(1000, self.countdown, timeInSeconds, False) |
89 | 97 | else: |
90 | | - app.labelvariable.set(timeInSeconds) |
| 98 | + app.labelvariable.set(fmt_time(timeInSeconds)) |
91 | 99 | self._alarm_id = self.master.after(1000, self.countdown, timeInSeconds-1, False) |
92 | 100 |
|
93 | 101 |
|
|
0 commit comments