Python论坛  - 讨论区

标题:[python-chinese] 用python实现鼠标手势的问题

2005年09月02日 星期五 23:28

lveax lveax at 126.com
Fri Sep 2 23:28:16 HKT 2005

大家好,

我想用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()

----



[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年09月02日 星期五 23:44

Qiangning Hong hongqn at gmail.com
Fri Sep 2 23:44:56 HKT 2005

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>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号