✍️ GUI签名工具

📋 功能说明
  • 鼠标绘制签名轨迹
  • 支持多种画笔颜色
  • 保存签名图片
💻 源代码
import tkinter as tk
from tkinter import colorchooser

class SignatureApp:
    def __init__(self):
        self.root = tk.Tk()
        self.root.title("签名工具")
        self.canvas = tk.Canvas(self.root, width=800, height=400, bg="white")
        self.canvas.pack()
        
        # 按钮
        btn_frame = tk.Frame(self.root)
        btn_frame.pack(pady=10)
        
        tk.Button(btn_frame, text="选择颜色", command=self.choose_color).pack(side=tk.LEFT, padx=5)
        tk.Button(btn_frame, text="清空", command=self.clear).pack(side=tk.LEFT, padx=5)
        tk.Button(btn_frame, text="保存", command=self.save).pack(side=tk.LEFT, padx=5)
        
        self.old_x, self.old_y = None, None
        self.color = "black"
        
        self.canvas.bind("", self.start_draw)
        self.canvas.bind("", self.draw)
        self.canvas.bind("", self.stop_draw)
        
    def start_draw(self, event):
        self.old_x, self.old_y = event.x, event.y
        
    def draw(self, event):
        self.canvas.create_line(self.old_x, self.old_y, event.x, event.y, 
                                fill=self.color, width=3)
        self.old_x, self.old_y = event.x, event.y
        
    def stop_draw(self, event):
        self.old_x, self.old_y = None, None
        
    def choose_color(self):
        color = colorchooser.askcolor(color=self.color)[1]
        if color:
            self.color = color
            
    def clear(self):
        self.canvas.delete("all")
        
    def save(self):
        self.canvas.postscript(file="signature.eps")
        
    def run(self):
        self.root.mainloop()

if __name__ == '__main__':
    app = SignatureApp()
    app.run()
📦 运行环境
pip install tkinter (内置)
操作说明
  • 🖱️ 鼠标拖动签名
  • 🎨 选择画笔颜色
  • 🗑️ 清空画布
  • 💾 保存为EPS