import tkinter as tk
from tkinter import ttk

class SimpleDrawBoard:
    def __init__(self, root):
        self.root = root
        self.root.title("简易画图板")
        self.root.geometry("800x600")

        # 画笔默认参数
        self.pen_color = "black"
        self.pen_size = 3
        self.is_eraser = False
        self.last_x = None
        self.last_y = None

        # 顶部控制栏
        control_frame = tk.Frame(root, height=50, bg="#f0f0f0")
        control_frame.pack(fill=tk.X, padx=5, pady=5)

        # 颜色按钮
        colors = ["black", "red", "blue", "green", "orange", "purple"]
        for c in colors:
            btn = tk.Button(control_frame, bg=c, width=3, height=2,
                            command=lambda col=c: self.set_color(col))
            btn.pack(side=tk.LEFT, padx=3)

        # 画笔粗细选择
        ttk.Label(control_frame, text="粗细:").pack(side=tk.LEFT, padx=(10, 2))
        self.size_var = tk.StringVar(value="3")
        size_combo = ttk.Combobox(control_frame, textvariable=self.size_var,
                                  values=[1, 3, 5, 8, 10, 15], width=5)
        size_combo.pack(side=tk.LEFT)
        size_combo.bind("<<ComboboxSelected>>", self.change_size)

        # 橡皮擦按钮
        eraser_btn = tk.Button(control_frame, text="橡皮擦", command=self.use_eraser)
        eraser_btn.pack(side=tk.LEFT, padx=10)

        # 清空画布按钮
        clear_btn = tk.Button(control_frame, text="清空画布", command=self.clear_canvas, bg="#ff6666", fg="white")
        clear_btn.pack(side=tk.RIGHT, padx=5)

        # 绘图画布
        self.canvas = tk.Canvas(root, bg="white", cursor="cross")
        self.canvas.pack(fill=tk.BOTH, expand=True, padx=5, pady=5)

        # 绑定鼠标事件
        self.canvas.bind("<Button-1>", self.start_draw)
        self.canvas.bind("<B1-Motion>", self.drawing)
        self.canvas.bind("<ButtonRelease-1>", self.stop_draw)

    def set_color(self, color):
        self.pen_color = color
        self.is_eraser = False

    def change_size(self, event):
        self.pen_size = int(self.size_var.get())

    def use_eraser(self):
        self.is_eraser = True
        self.pen_color = "white"

    def clear_canvas(self):
        self.canvas.delete(tk.ALL)

    def start_draw(self, event):
        self.last_x = event.x
        self.last_y = event.y

    def drawing(self, event):
        if self.last_x and self.last_y:
            self.canvas.create_line(
                self.last_x, self.last_y, event.x, event.y,
                fill=self.pen_color, width=self.pen_size,
                capstyle=tk.ROUND, smooth=True
            )
        self.last_x = event.x
        self.last_y = event.y

    def stop_draw(self, event):
        self.last_x = None
        self.last_y = None

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