gpt4 book ai didi

python - 我需要想办法在触摸屏上获取用户签名

转载 作者:太空宇宙 更新时间:2023-11-03 12:53:14 25 4
gpt4 key购买 nike

我正在制作一个 POS 系统,我想包含一个选项,以便在购买后进行签名。我已经尝试过使用 Canvas 的 Tkinter 方法,但速度很慢,而且非常四四方方,有什么建议吗?

这是我现在使用的代码:

from tkinter import *

canvas_width = 500
canvas_height = 150

def paint( event ):
python_green = "#476042"
x1, y1 = ( event.x - 1 ), ( event.y - 1 )
x2, y2 = ( event.x + 1 ), ( event.y + 1 )
w.create_oval( x1, y1, x2, y2, fill = python_green )

master = Tk()
master.title( "Painting using Ovals" )
w = Canvas(master,
width=canvas_width,
height=canvas_height)
w.pack(expand = YES, fill = BOTH)
w.bind( "<B1-Motion>", paint )

message = Label( master, text = "Press and Drag the mouse to draw" )
message.pack( side = BOTTOM )

mainloop()

顺便说一句,这段代码不是我的,我是从this得到的网站

最佳答案

一个干净的例子:

import tkinter as tk

class Signature(tk.Canvas):
def __init__(self, *args, **kwargs):
self.thickness = kwargs.pop('thickness', 4)
tk.Canvas.__init__(self, *args, **kwargs)
self._xold = None
self._yold = None

self.bind('<B1-Motion>', self._on_motion)

def _on_motion(self, event):
x1, y1 = ( event.x - self.thickness ), ( event.y - self.thickness )
x2, y2 = ( event.x + self.thickness ), ( event.y + self.thickness )
event.widget.create_oval( x1, y1, x2, y2, fill='black' )
if self._xold is not None and self._yold is not None:
self.create_oval( x1, y1, x2, y2, fill='black' )
self.create_line(self._xold,self._yold,event.x,event.y,smooth=True,width=self.thickness*2+1)
# here's where you draw it. smooth. neat.
self._xold = event.x
self._yold = event.y

if __name__ == '__main__':
canvas_width = '500'
canvas_height = '500'

root = tk.Tk()
sig = Signature(root, width=canvas_width,height=canvas_height,bg='white', thickness=1)
sig.pack()

root.mainloop()

请注意,这会在事件的位置绘制一个椭圆,并用一条线将其与最后一个事件连接起来,这有助于平滑线。

关于python - 我需要想办法在触摸屏上获取用户签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53705590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com