2005年09月02日 星期五 23:28
大家好,
我想用python实现鼠标手势
我的思路是这样:取初始的鼠标坐标a,b,鼠标上下左右移动时,判断的任意一种情
况大于一个移动距离规定值,取这个时候的坐标x,y,
通过计算x,y与初始坐标a,b的关系来判断鼠标移动方向,然后把当前的x,y赋值成
新的初始坐标a,b,继续刚才的判断,当与上次移动方向相同就忽略,不同就累计起来
最后得出鼠标手势
但是我在实现的时候有个问题,就是没法把"当前的x,y赋值成新的初始坐标a,b"
不知道我的写法上有些什么问题.
UnboundLocalError: local variable 'a' referenced before assignment
下面是源文件
limodou wrote:
---------
from Tkinter import *
root = Tk()
frame = Frame(root, width=200, height=250)
def callback(event):
global x,y
x = event.x
y = event.y
#print x, y
c = x - a;d = y - b
if abs(c) >= 3 or abs(d) >= 3:
print c, d
a = a + c; b = b + d
print a, b
def callback1(event):
global a,b
a = event.x
b = event.y
print a, b
frame.bind("<1>", callback1)
frame.bind("", callback)
frame.pack()
root.mainloop()
----
2005年09月02日 星期五 23:44
lveax wrote: > 下面是源文件 贴python代码要保留缩进,要不很难看懂的。 > from Tkinter import * > > root = Tk() > > frame = Frame(root, width=200, height=250) > > def callback(event): > global x,y > x = event.x > y = event.y > #print x, y > > c = x - a;d = y - b 这里a和b没有定义 [snip remaining code] -- Qiangning Hong http://www.hn.org/hongqn (RSS: http://feeds.feedburner.com/hongqn) Registered Linux User #396996 Get Firefox! <http://www.spreadfirefox.com/?q=affiliates&id;=67907&t;=1> Thunderbird! <http://www.spreadfirefox.com/?q=affiliates&id;=67907&t;=183>
Zeuux © 2025
京ICP备05028076号