您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Tkinter计时器在单击按钮时从0开始

Tkinter计时器在单击按钮时从0开始

这是一个简单的秒表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会感觉到响应能力更高。

其他 2022/1/1 18:40:56 有279人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶