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, чтобы получить эти события.

Другие вопросы по тегам