我试图通过在Mac OS X 10.10.3上运行的python curses来检索鼠标事件。我一直在关注另一个问题(Python curses.getmouse()),它有一个简单的例子,但它并没有为我产生预期的结果。我认为这与我的终端和/或操作系统有关,但我不确定。
以下是我正在使用的代码:
import curses
screen = curses.initscr()
#curses.noecho()
curses.curs_set(0)
screen.keypad(1)
curses.mousemask(1)
screen.addstr("This is a Sample Curses Script\n\n")
while True:
event = screen.getch()
if event == ord("q"):
screen.addstr(20, 10, "Q")
if event == curses.KEY_MOUSE:
a = curses.getmouse()
screen.addstr(20, 10, a)
screen.refresh()
curses.endwin()
有没有人知道为什么curses.KEY_MOUSE事件似乎永远不会出现?
编辑:我已经检查了鼠标掩码的返回值,当它最初运行时,它会按预期返回元组(1,0)。
答案 0 :(得分:1)
Mac OS X上的默认终端应用程序(" Terminal.app")不支持鼠标事件。您需要使用其他终端应用程序(例如iTerm)来获取这些事件。
答案 1 :(得分:1)
如上所述,Terminal.app本身不支持鼠标事件。之前已经问过这个问题,建议使用另一个终端模拟器。或者,至少有一个附加程序可以提供帮助,如 Does OS X's terminal app support mouse? 中建议的iTerm和iTerm2所述,但也提到了MouseTerm(添加-上)。 Mac OS X Terminal: mouse support?
中提供了相同的信息