Curses имеет очень низкий уровень API - возвращаясь к программированию C 1980-х годов.
Оболочки Python имеют некоторую поддержку более высокого уровня для ввода с клавиатуры и некоторые другие тонкости, но их немного, и они не очень хорошо документированы.
Тонкости Python не включают поддержку мыши (хорошо, вы возвращаете свое состояние мыши в кортеж вместо того, чтобы создавать для этого структуру C, так что это несколько лучше).
Идея в том, что нужно
включить окно проклятий
включите "клавиатуру", чтобы Python выдавал вам полные коды клавиш
включить «маску мыши», чтобы события мыши отправлялись в ваше приложение
Определите специальный код клавиатуры «mouse_key» в функции getch
так что вы можете вызвать getmouse, чтобы получить координаты и состояние кнопки.
Таким образом, нет готовых хороших обратных вызовов, вы должны настроить основной цикл вашего
приложение для обнаружения событий мыши самостоятельно.
Этот пример кода выполняет описанные выше шаги для чтения событий мыши и вывода состояния мыши на экран - этого должно быть достаточно, чтобы начать строить полезную обработку мыши с помощью curses:
# -*- coding: utf-8 -*-
import curses
screen = curses.initscr()
curses.noecho()
curses.mousemask(curses.ALL_MOUSE_EVENTS)
screen.keypad(1)
char = ""
try:
while True:
char = screen.getch()
screen.addstr( str(char) + " ")
if char == curses.KEY_MOUSE:
screen.addstr (" |" + str(curses.getmouse()) + "| ")
finally:
screen.keypad(0)
curses.endwin()
curses.echo()