Python在Mac OS X上诅咒鼠标事件

时间:2015-06-25 01:52:10

标签: python macos ncurses curses python-curses

我试图通过在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)。

2 个答案:

答案 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?

中提供了相同的信息