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号