import tkinter as tk
from tkinter import messagebox
import time

class TimerApp:
    def __init__(self, root):
        self.root = root
        self.root.title("简易定时器")
        self.root.geometry("300x200")
        self.root.resizable(False, False)

        self.time_left = 0          # 剩余时间（秒）
        self.is_running = False     # 是否正在运行
        self.paused_time = 0        # 暂停时剩余的时间

        # 输入框：设置时间（秒）
        tk.Label(root, text="输入倒计时时间（秒）：").pack(pady=10)
        self.entry = tk.Entry(root, width=10, justify='center')
        self.entry.pack()

        # 显示剩余时间
        self.time_label = tk.Label(root, text="00:00", font=("Helvetica", 24))
        self.time_label.pack(pady=10)

        # 按钮框架
        button_frame = tk.Frame(root)
        button_frame.pack(pady=10)

        self.start_button = tk.Button(button_frame, text="开始", command=self.start_timer)
        self.start_button.grid(row=0, column=0, padx=5)

        self.pause_button = tk.Button(button_frame, text="暂停", command=self.pause_timer, state=tk.DISABLED)
        self.pause_button.grid(row=0, column=1, padx=5)

        self.reset_button = tk.Button(button_frame, text="重置", command=self.reset_timer)
        self.reset_button.grid(row=0, column=2, padx=5)

    def start_timer(self):
        if not self.is_running:
            try:
                if self.time_left == 0:
                    total_seconds = int(self.entry.get())
                    if total_seconds <= 0:
                        raise ValueError
                    self.time_left = total_seconds
                self.is_running = True
                self.start_button.config(state=tk.DISABLED)
                self.pause_button.config(state=tk.NORMAL)
                self.update_timer()
            except ValueError:
                messagebox.showerror("输入错误", "请输入一个正整数！")

    def pause_timer(self):
        self.is_running = False
        self.start_button.config(state=tk.NORMAL)
        self.pause_button.config(text="继续")

    def reset_timer(self):
        self.is_running = False
        self.time_left = 0
        self.start_button.config(state=tk.NORMAL)
        self.pause_button.config(state=tk.DISABLED, text="暂停")
        self.time_label.config(text="00:00")

    def update_timer(self):
        if self.is_running and self.time_left > 0:
            mins, secs = divmod(self.time_left, 60)
            time_str = f"{mins:02d}:{secs:02d}"
            self.time_label.config(text=time_str)
            self.time_left -= 1
            self.root.after(1000, self.update_timer)
        elif self.time_left == 0 and self.is_running:
            self.time_label.config(text="00:00")
            self.is_running = False
            self.start_button.config(state=tk.NORMAL)
            self.pause_button.config(state=tk.DISABLED, text="暂停")
            messagebox.showinfo("时间到！", "倒计时结束！")

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