2010-06-27 79 views
2

我试图找到一种方法来获取在Python中的curse模块中的鼠标点击事件。Python诅咒getmouse函数?

我读了http://docs.python.org/library/curses.html的文档,并建议做

c == curses.getch() 
if(c == curses.KEY_MOUSE): 
    curses.getmouse() 
    ... 

然而,这个“if语句”似乎永远不会触发...如果我试图移动之外getmouse()函数“if语句”强制它返回鼠标信息,则返回

(devid,x,y,z,bstate) = curses.getmouse() 
_curses.error: getmouse() returned ERR 

还有其他想法吗?

回答

5

您是否使用mousemask函数启用了鼠标事件报告,并检查了它的返回值以确保它确认它实际上可以报告一些鼠标事件?根据终端(或模拟器程序,现在;-),鼠标事件报告可能会也可能不会全部或部分;在任何情况下,它都默认在curses中被禁用(不只是在Python中,这是一个诅咒的一般想法;-),除非你直接通过mousemask调用明确地启用它。

+0

启用鼠标遮罩功能后,它按预期工作。感谢你的及时回复。 – Patrick 2010-06-28 00:30:12

+0

@帕特里克,不客气 - 很高兴得到了帮助! – 2010-06-28 01:27:07