💻 源代码
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()