写一个pc端签字画板代码
时间: 2024-03-01 16:54:43 浏览: 18
以下是一个简单的PC端签字画板代码,使用Python语言和Tkinter库编写:
```python
from tkinter import *
class Paint:
def __init__(self, master):
self.master = master
self.color = "black"
self.old_x = None
self.old_y = None
self.line_width = 2
self.canvas = Canvas(self.master, width=800, height=600, bg="white")
self.canvas.pack(expand=YES, fill=BOTH)
self.canvas.bind("<B1-Motion>", self.paint)
self.canvas.bind("<ButtonRelease-1>", self.reset)
self.button_frame = Frame(self.master)
self.button_frame.pack(fill=X)
self.color_label = Label(self.button_frame, text="Color:")
self.color_label.pack(side=LEFT, padx=5)
self.black_button = Button(self.button_frame, bg="black", command=lambda: self.set_color("black"))
self.black_button.pack(side=LEFT)
self.blue_button = Button(self.button_frame, bg="blue", command=lambda: self.set_color("blue"))
self.blue_button.pack(side=LEFT)
self.red_button = Button(self.button_frame, bg="red", command=lambda: self.set_color("red"))
self.red_button.pack(side=LEFT)
self.green_button = Button(self.button_frame, bg="green", command=lambda: self.set_color("green"))
self.green_button.pack(side=LEFT)
self.clear_button = Button(self.button_frame, text="Clear", command=self.clear_canvas)
self.clear_button.pack(side=RIGHT, padx=5)
def paint(self, event):
if self.old_x and self.old_y:
self.canvas.create_line(self.old_x, self.old_y, event.x, event.y, width=self.line_width, fill=self.color, capstyle=ROUND, smooth=TRUE)
self.old_x = event.x
self.old_y = event.y
def reset(self, event):
self.old_x, self.old_y = None, None
def set_color(self, color):
self.color = color
def clear_canvas(self):
self.canvas.delete("all")
root = Tk()
paint_app = Paint(root)
root.mainloop()
```
这个程序使用了Tkinter库创建了一个窗口,并在窗口中添加了一个画布(canvas),以及一些按钮(button)用于改变画笔颜色和清空画布。当鼠标左键按下并移动时,程序会在画布上绘制一条直线。当鼠标左键释放时,程序会重置起点坐标(old_x, old_y)。