NCurses и ESC, клавиши ALT
У меня проблема с NCurses... мне нужно обрабатывать все ключи, как Esc, Alt+F etc. Проблема в том, что коды похожи... я.е:
Esc - 27
Alt+A - 27 65
в качестве примера есть двойной код Alt+[key] комбинации, что как to Esc ключ... Есть идеи, как с этим справиться?
2 ответов
вот пример для python:
key = self.screen.getch()
if key == ord('q'): # quit
go = False
elif key == 27: # Esc or Alt
# Don't wait for another key
# If it was Alt then curses has already sent the other key
# otherwise -1 is sent (Escape)
self.screen.nodelay(True)
n = self.screen.getch()
if n == -1:
# Escape was pressed
go = False
# Return to delay
self.screen.nodelay(False)
решен:
- используйте noecho или режим тайм-аута
- проверить на 27 (ALT или ESC код)... если пройти:
- попробуйте прочитать следующий код
- если другой код ошибается, то.. у вас есть ESC ключ другим способом у вас есть ALT+еще один код