Настраиваемая функциональность привязки ключей в curses

#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. да — только это (если изменения были в целом полезными, вы могли бы открыть проблему с сопровождающим и улучшить исходный код).