Python проклинает событие мыши в Mac OS X
Я пытаюсь получить событие мыши с помощью проклятий Python, работающих на Mac OS X 10.10.3. Я следовал за другим вопросом ( 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 ответа
Как уже было отмечено, Terminal.app не поддерживает события мыши. Этот вопрос был задан ранее, с предложением использовать другой эмулятор терминала. В качестве альтернативы, по крайней мере, есть одна дополнительная программа, которая может помочь, как указано в разделе Поддерживает ли терминальное приложение OS X мышь? предлагает iTerm и iTerm2, но также упоминает MouseTerm (дополнение). Та же информация приведена в Mac OS X Terminal: поддержка мыши?
Терминальное приложение по умолчанию в Mac OS X ("Terminal.app") не поддерживает события мыши. Вам нужно будет использовать другое терминальное приложение, такое как iTerm, чтобы получить эти события.