Python curse 的 getmouse 函数?

2 投票
1 回答
2095 浏览
提问于 2025-04-16 00:30

我正在尝试在Python的curse模块中获取鼠标点击事件。

我查看了这个文档,里面建议我这样做:

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

还有其他想法吗?

1 个回答

5

你有没有使用 mousemask 函数来开启鼠标事件的报告功能,并检查它的返回值,以确保它确实可以报告一些鼠标事件?根据你使用的终端(或者现在流行的模拟器程序),鼠标事件的报告可能会有可能,也可能没有,或者部分可用;而且在 curses 中,这个功能默认是关闭的(不仅仅是在 Python 中,这是 curses 的一个通用概念;-)),除非你明确调用 mousemask 来开启它。

撰写回答