你如何在 tkinter 中获取用户签名 python
How do you take a user's signature in tkinter python
我无法想出一个关于如何接受用户签名的概念。用户会 "draw" 在屏幕上使用鼠标或手指(如果他们有触控设备)。我最初考虑使用 canvas 小部件,尽管这可能太有限,因为我需要将其保存为 png/jpg。有没有人知道如何执行此操作的方法或工作示例?
这是一个示例代码:
from tkinter import *
from PIL import Image, ImageDraw
tk = Tk()
cvs = Canvas(tk, width=500,height=500)
cvs.pack()
img = Image.new('RGB',(500,500),(255,255,255))
draw = ImageDraw.Draw(img)
mousePressed = False
last=None
def press(evt):
global mousePressed
mousePressed = True
def release(evt):
global mousePressed
mousePressed = False
cvs.bind_all('<ButtonPress-1>', press)
cvs.bind_all('<ButtonRelease-1>', release)
def finish():
img.save('img.png')
tk.destroy()
Button(tk,text='done',command=finish).pack()
def move(evt):
global mousePressed, last
x,y = evt.x,evt.y
if mousePressed:
if last is None:
last = (x,y)
return
draw.line(((x,y),last), (0,0,0))
cvs.create_line(x,y,last[0],last[1])
last = (x,y)
else:
last = (x,y)
cvs.bind_all('<Motion>', move)
tk.mainloop()
检查 raspberry pi 3 python 3.5.3。完美运行。希望对您有所帮助!
我无法想出一个关于如何接受用户签名的概念。用户会 "draw" 在屏幕上使用鼠标或手指(如果他们有触控设备)。我最初考虑使用 canvas 小部件,尽管这可能太有限,因为我需要将其保存为 png/jpg。有没有人知道如何执行此操作的方法或工作示例?
这是一个示例代码:
from tkinter import *
from PIL import Image, ImageDraw
tk = Tk()
cvs = Canvas(tk, width=500,height=500)
cvs.pack()
img = Image.new('RGB',(500,500),(255,255,255))
draw = ImageDraw.Draw(img)
mousePressed = False
last=None
def press(evt):
global mousePressed
mousePressed = True
def release(evt):
global mousePressed
mousePressed = False
cvs.bind_all('<ButtonPress-1>', press)
cvs.bind_all('<ButtonRelease-1>', release)
def finish():
img.save('img.png')
tk.destroy()
Button(tk,text='done',command=finish).pack()
def move(evt):
global mousePressed, last
x,y = evt.x,evt.y
if mousePressed:
if last is None:
last = (x,y)
return
draw.line(((x,y),last), (0,0,0))
cvs.create_line(x,y,last[0],last[1])
last = (x,y)
else:
last = (x,y)
cvs.bind_all('<Motion>', move)
tk.mainloop()
检查 raspberry pi 3 python 3.5.3。完美运行。希望对您有所帮助!