import tkinter as tk
from tkinter import ttk
import time

class TimerApp:
    def __init__(self, root):
        self.root = root
        self.root.title("简易计时器")
        self.root.geometry("420x300")
        self.root.resizable(False, False)

        self.running = False
        self.start_time = 0
        self.elapsed_time = 0

        # 时间显示
        self.display_label = ttk.Label(
            root,
            text="00:00:00.00",
            font=("Consolas", 42)
        )
        self.display_label.pack(pady=45)

        # 按钮区域
        btn_frame = ttk.Frame(root)
        btn_frame.pack()

        self.btn_start = ttk.Button(btn_frame, text="开始", command=self.start_timer)
        self.btn_start.grid(row=0, column=0, padx=6)

        self.btn_pause = ttk.Button(btn_frame, text="暂停", command=self.pause_timer)
        self.btn_pause.grid(row=0, column=1, padx=6)

        self.btn_reset = ttk.Button(btn_frame, text="重置", command=self.reset_timer)
        self.btn_reset.grid(row=0, column=2, padx=6)

        self.update_timer()

    def start_timer(self):
        if not self.running:
            self.running = True
            self.start_time = time.time() - self.elapsed_time

    def pause_timer(self):
        if self.running:
            self.running = False
            self.elapsed_time = time.time() - self.start_time

    def reset_timer(self):
        self.running = False
        self.elapsed_time = 0
        self.display_label.config(text="00:00:00.00")

    def update_timer(self):
        if self.running:
            self.elapsed_time = time.time() - self.start_time
            h = int(self.elapsed_time // 3600)
            m = int((self.elapsed_time % 3600) // 60)
            s = self.elapsed_time % 60
            self.display_label.config(text=f"{h:02d}:{m:02d}:{s:05.2f}")
        # 20ms刷新一次
        self.root.after(20, self.update_timer)

if __name__ == "__main__":
    window = tk.Tk()
    app = TimerApp(window)
    window.mainloop()
