import tkinter as tk

class TimerApp:
    def __init__(self, root):
        self.root = root
        self.root.title("计时器")
        self.root.geometry("400x280")
        self.root.configure(bg="#2c2c2c")
        self.root.resizable(False, False)

        self.seconds = 0
        self.running = False
        self.after_id = None

        self.time_label = tk.Label(
            root,
            text="00:00:00",
            font=("Arial", 48, "bold"),
            fg="#00ee77",
            bg="#2c2c2c"
        )
        self.time_label.pack(pady=40)

        frame = tk.Frame(root, bg="#2c2c2c")
        frame.pack()

        btn_style = {"width":7, "font":("Arial",13), "height":2}
        self.start_btn = tk.Button(frame, text="开始", bg="#3498db", fg="white",**btn_style, command=self.start_timer)
        self.start_btn.grid(row=0, column=0, padx=4)

        self.pause_btn = tk.Button(frame, text="暂停", bg="#f39c12", fg="white",**btn_style, command=self.pause_timer)
        self.pause_btn.grid(row=0, column=1, padx=4)

        self.reset_btn = tk.Button(frame, text="重置", bg="#e74c3c", fg="white",**btn_style, command=self.reset_timer)
        self.reset_btn.grid(row=0, column=2, padx=4)

    def update_time(self):
        self.seconds += 1
        h = self.seconds // 3600
        m = (self.seconds % 3600) // 60
        s = self.seconds % 60
        self.time_label.config(text=f"{h:02d}:{m:02d}:{s:02d}")
        self.after_id = self.root.after(1000, self.update_time)

    def start_timer(self):
        if not self.running:
            self.running = True
            self.update_time()

    def pause_timer(self):
        if self.running:
            self.root.after_cancel(self.after_id)
            self.running = False

    def reset_timer(self):
        if self.after_id:
            self.root.after_cancel(self.after_id)
        self.running = False
        self.seconds = 0
        self.time_label.config(text="00:00:00")

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