这是一个简单的秒表GUI。有一些改进的空间。;)
import tkinter as tk
from time import time
class Stopwatch:
def __init__(self):
root = tk.Tk()
root.title('Stopwatch')
self.display = tk.Label(root, text='00:00', width=20)
self.display.pack()
self.button = tk.Button(root, text='Start', command=self.toggle)
self.button.pack()
self.paused = True
root.mainloop()
def toggle(self):
if self.paused:
self.paused = False
self.button.config(text='Stop')
self.oldtime = time()
self.run_timer()
else:
self.paused = True
self.oldtime = time()
self.button.config(text='Start')
def run_timer(self):
if self.paused:
return
delta = int(time() - self.oldtime)
timestr = '{:02}:{:02}'.format(*divmod(delta, 60))
self.display.config(text=timestr)
self.display.after(1000, self.run_timer)
Stopwatch()
该toggle
方法可打开或关闭秒表。该run_timer
方法display
使用自计时器启动以来的时间(以分钟和秒为单位)更新Label。为了获得更高的准确性,请将.after
延迟减少为500或100。这将对Label进行不必要的(并且是不可见的)更新,但是显示的时间将更加准确,并且GUI会感觉到响应能力更高。