Ответ 1
Решено:
- Использовать режим noecho или timeout
- Проверьте код 27 (ALT или ESC)... если pass:
- попробуйте прочитать другой код.
- если другой код ERR, то.. у вас есть клавиша ESC другим способом, у вас есть ALT + другой код.
У меня проблема с NCurses... Мне нужно обрабатывать все ключи, такие как Esc, Alt + F и т.д. Проблема в том, что коды схожи... i.e:
Esc - 27
Alt + A - 27 65
В качестве примера есть двойной код для комбинации Alt + [key], что похожее на Esc ключ... Любые идеи, как справиться с этим?
Решено:
Вот пример для 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)