#python-3.x #curses #python-curses #tui
#python-3.x #проклятия #python-curses #tui
Вопрос:
Я пытаюсь реализовать некоторые простые функции редактирования текста в TUI, над которым я работаю. Я использую оболочку Python для curses.
В настоящее время я пытаюсь связать определенные привязки ключей с определенной функцией или операцией, но не уверен, как это сделать, и документация неясна. Согласно документации, существуют некоторые привязки клавиш по умолчанию, но что, если я захочу добавить свое собственное «событие», связанное с конкретной привязкой клавиш?
Ответ №1:
Начать нужно с просмотра исходного кода curses.textpad
, чтобы увидеть, как он реализован. Это жестко запрограммировано, например,
elif ch == curses.ascii.ENQ: # ^e
if self.stripspaces:
self.win.move(y, self._end_of_line(y))
else:
self.win.move(y, self.maxx)
Его можно было бы переписать, чтобы разрешить пользовательские привязки, но имейте в виду, что на данный момент (середина февраля 2021 года) последний коммит был более 4 лет назад (декабрь 2016 года).
Комментарии:
1. Значит ли это, что мне придется изменить исходный код curses.textpad, а затем создать его для себя?
2. да — только это (если изменения были в целом полезными, вы могли бы открыть проблему с сопровождающим и улучшить исходный код).