Spec-Zone.ru › Python 2.7

curses — Обработка терминала для дисплеев с символьно-ячейковой структурой

Изменено в версии 1.6: Добавлена поддержка библиотеки ncurses и преобразование в пакет.

Модуль curses предоставляет интерфейс к библиотеке curses, фактическому стандарту для переносимой расширенной обработки терминала.

Хотя curses наиболее широко используется в среде Unix, версии доступны для DOS, OS/2 и, возможно, других систем. Этот модуль расширения разработан для соответствия API ncurses, открытой библиотеки curses, размещенной в Linux и вариантах Unix, основанных на BSD.

Примечание

Начиная с версии 5.4, библиотека ncurses определяет способ интерпретации данных, не являющихся ASCII, с помощью функции nl_langinfo. Это означает, что в приложении необходимо вызвать locale.setlocale() и закодировать строки Unicode с использованием одного из доступных в системе кодирований. В данном примере используется кодировка по умолчанию системы:

import locale
locale.setlocale(locale.LC_ALL, '')
code = locale.getpreferredencoding()

Затем используйте code в качестве кодировки для вызовов str.encode().

См. также

Module curses.ascii

Утилиты для работы с символами ASCII независимо от настроек локализации.

Module curses.panel

Расширение стека панелей, добавляющее глубину окнам curses.

Module curses.textpad

Редактируемый текстовый виджет для curses, поддерживающий связывание, подобное Emacs.

Программирование с использованием Curses в Python

Материалы руководства по использованию curses с Python, подготовленные Эндрю Куклином и Эриком Реймондом.

Директория Demo/curses/ в дистрибутиве исходного кода Python содержит некоторые примеры программ с использованием привязок curses, предоставляемых этим модулем.

1. Функции

Модуль curses определяет следующую исключительную ситуацию:

exception curses.error

Исключение, генерируемое, когда функция библиотеки curses возвращает ошибку.

Примечание

В тех случаях, когда аргументы x или y функции или метода являются необязательными, они по умолчанию принимают значение текущей позиции курсора. Когда attr является необязательным, он по умолчанию принимает значение A_NORMAL.

Модуль curses определяет следующие функции:

curses.baudrate()

Возвращает скорость вывода терминала в битах в секунду. В программных эмуляторах терминалов она будет иметь фиксированное высокое значение. Включено по историческим причинам; раньше использовалось для написания циклов вывода с задержками и иногда для изменения интерфейсов в зависимости от скорости линии.

curses.beep()

Издает короткий звуковой сигнал.

curses.can_change_color()

Возвращает True или False, в зависимости от того, может ли программист изменять цвета, отображаемые на терминале.

curses.cbreak()

Переход в режим cbreak. В режиме cbreak (иногда называемом режимом «редкий») обычное буферирование строки tty выключается, и символы доступны для чтения по одному. Однако, в отличие от режима raw, специальные символы (прерывание, выход, приостановка и управление потоком) сохраняют свои эффекты на драйвере tty и в программе вызова. Вызов сначала raw(), а затем cbreak() оставляет терминал в режиме cbreak.

curses.color_content(color_number)

Возвращает интенсивность красного, зелёного и синего (RGB) компонентов в цвете color_number, который должен быть между 0 и COLORS. Возвращается кортеж из 3 значений, содержащий значения R, G, B для данного цвета, которые будут находиться в диапазоне от 0 (отсутствующий компонент) до 1000 (максимальное количество компонента).

curses.color_pair(color_number)

Возвращает значение атрибута для отображения текста в указанном цвете. Это значение атрибута может быть объединено с A_STANDOUT, A_REVERSE, и другими A_* атрибутами. pair_number() является аналогом этой функции.

curses.curs_set(visibility)

Устанавливает состояние курсора. visibility может быть установлен в 0, 1 или 2, для невидимого, обычного или очень видимого. Если терминал поддерживает запрашиваемое видимость, возвращается предыдущее состояние курсора; в противном случае генерируется исключение. На многих терминалах режим «видимый» представляет собой подчёркнутый курсор, а режим «очень видимый» — курсор в виде блока.

curses.def_prog_mode()

Сохраняет текущий режим терминала в качестве режима «программа» — режима, когда исполняемая программа использует curses. (Его аналог — режим «оболочка», когда программа не использует curses.) Последующие вызовы reset_prog_mode() восстановят этот режим.

curses.def_shell_mode()

Сохраняет текущий режим терминала в качестве режима «оболочка» — режима, когда исполняемая программа не использует curses. (Его аналог — режим «программа», когда программа использует возможности curses.) Последующие вызовы reset_shell_mode() восстановят этот режим.

curses.delay_output(ms)

Вставляет паузу в выводе продолжительностью ms миллисекунд.

curses.doupdate()

Обновляет физический экран. Библиотека curses сохраняет две структуры данных: одну, представляющую текущее состояние физического экрана, и виртуальный экран, представляющий желаемое последующее состояние. Функция doupdate() обновляет физический экран, чтобы он соответствовал виртуальному.

Виртуальный экран может быть обновлён с помощью вызова noutrefresh() после выполнения операций записи, таких как addstr(), в окне. Обычный вызов refresh() — это просто noutrefresh(), за которым следует doupdate(); если необходимо обновить несколько окон, можно повысить производительность и, возможно, уменьшить мерцание экрана, выполняя вызовы noutrefresh() для всех окон, за которыми следует один вызов doupdate().

curses.echo()

Переход в режим отображения ввода. В режиме отображения ввода каждый введённый символ отображается на экране по мере ввода.

curses.endwin()

Деинициализирует библиотеку и возвращает терминал в обычное состояние.

curses.erasechar()

Возвращает текущий символ стирания пользователя. В операционных системах Unix это свойство контролируемого tty программы curses, и не устанавливается самой библиотекой curses.

curses.filter()

Если используется, процедура filter() должна быть вызвана до вызова initscr(). В результате, во время этих вызовов LINES устанавливается в 1; возможности clear, cup, cud, cud1, cuu1, cuu, vpa отключаются; и строка home устанавливается в значение cr. Результатом является ограничение курсора текущей строкой, а также обновлений экрана.

curses.flash()

Мгновенно вспыхивает экран. То есть, изменяет его на инвертированный видеорежим, а затем возвращает его в исходный режим в короткий промежуток времени. Некоторые люди предпочитают такой «видимый звонок» вместо звукового сигнала, подаваемого функцией beep().

curses.flushinp()

Очищает все буферы ввода. Это отбрасывает все набранные пользователем данные, которые ещё не были обработаны программой.

END_OF_DOCUMENT_MARKER
curses.getmouse()

После того, как getch() вернёт KEY_MOUSE для сигнализации о событии мыши, этот метод следует вызвать для получения очереди события мыши, представленного как 5-кортеж (id, x, y, z, bstate). id — значение идентификатора, используемое для различения нескольких устройств, а x, y, z — координаты события. (z в настоящее время не используется.) bstate — целое значение, биты которого устанавливаются для указания типа события и представляют собой побитовое ИЛИ одного или нескольких из следующих констант, где n — номер кнопки от 1 до 4: BUTTONn_PRESSED, BUTTONn_RELEASED, BUTTONn_CLICKED, BUTTONn_DOUBLE_CLICKED, BUTTONn_TRIPLE_CLICKED, BUTTON_SHIFT, BUTTON_CTRL, BUTTON_ALT.

curses.getsyx()

Возвращает текущие координаты виртуального курсора экрана по оси y и x. Если leaveok в настоящее время имеет значение true, возвращаются -1, -1.

curses.getwin(file)

Считывает данные, связанные с окном, хранящиеся в файле, которые были ранее записаны функцией putwin(). Затем функция создаёт и инициализирует новое окно, возвращая объект нового окна.

curses.has_colors()

Возвращает True если терминал может отображать цвета; в противном случае возвращает False.

curses.has_ic()

Возвращает True если терминал поддерживает вставки и удаление символов. Эта функция включена только по историческим причинам, так как все современные эмуляторы терминалов поддерживают такие возможности.

curses.has_il()

Возвращает True если терминал поддерживает вставки и удаления строк или может их эмулировать, используя области прокрутки. Эта функция включена только по историческим причинам, так как все современные эмуляторы терминалов поддерживают такие возможности.

curses.has_key(ch)

Принимает значение ключа ch и возвращает True если текущий тип терминала распознаёт ключ с этим значением.

curses.halfdelay(tenths)

Используется для режима половинной задержки, который похож на режим cbreak тем, что вводимые пользователем символы немедленно доступны программе. Однако после ожидания в течение tenths десятых долей секунды, если ничего не было введено, возникает исключение. Значение tenths должно быть числом между 1 и 255. Для выхода из режима половинной задержки используйте nocbreak().

curses.init_color(color_number, r, g, b)

Изменяет определение цвета, принимая номер цвета, который нужно изменить, а также три значения RGB (для количества компонентов красного, зелёного и синего). Значение color_number должно находиться в пределах от 0 до COLORS . Каждое из значений r, g, b должно находиться в пределах от 0 до 1000 . При использовании init_color() все вхождения этого цвета на экране немедленно изменяются на новое определение. Эта функция является бесполезной на большинстве терминалов; она активна только если can_change_color() возвращает 1.

curses.init_pair(pair_number, fg, bg)

Изменяет определение пары цветов. Принимает три аргумента: номер изменяемой пары цветов, номер цвета переднего плана и номер цвета заднего плана. Значение pair_number должно находиться в пределах от 1 до COLOR_PAIRS - 1 (пара цветов 0 связана с белым на чёрном и не может быть изменена). Значения аргументов fg и bg должны находиться в пределах от 0 до COLORS. Если пара цветов была ранее инициализирована, экран обновляется, и все её вхождения изменяются на новое определение.

curses.initscr()

Инициализирует библиотеку. Возвращает WindowObject , представляющий весь экран.

Примечание

Если при открытии терминала возникает ошибка, основная библиотека curses может привести к выходу интерпретатора.

curses.is_term_resized(nlines, ncols)

Возвращает True если resize_term() изменит структуру окна; в противном случае возвращает False.

curses.isendwin()

Возвращает True если была вызвана endwin() (то есть библиотека curses была деинициализирована).

curses.keyname(k)

Возвращает имя ключа с номером k. Имя ключа, генерирующего печатаемый символ ASCII, — это символ ключа. Имя комбинации управляющего ключа — это строка из двух символов, состоящая из символа ^ и соответствующего печатаемого ASCII-символа. Имя комбинации ключа Alt (128–255) — это строка, состоящая из префикса «M-» и имени соответствующего ASCII-символа.

curses.killchar()

Возвращает текущий символ уничтожения строки пользователя. В системах Unix это свойство управляющего tty программы curses и не устанавливается самой библиотекой curses.

curses.longname()

Возвращает строку, содержащую поле длинного имени terminfo, описывающее текущий терминал. Максимальная длина подробного описания составляет 128 символов. Оно определяется только после вызова initscr().

curses.meta(yes)

Если yes равно 1, разрешает ввод 8-битных символов. Если yes равно 0, разрешает ввод только 7-битных символов.

curses.mouseinterval(interval)

Устанавливает максимальное время в миллисекундах, которое может пройти между событиями нажатия и отпускания, чтобы они распознавались как щелчок, и возвращает предыдущее значение интервала. Значение по умолчанию составляет 200 мс или одну пятую секунды.

curses.mousemask(mousemask)

Устанавливает события мыши, которые нужно сообщать, и возвращает кортеж (availmask, oldmask). availmask указывает, какие из указанных событий мыши могут быть сообщены; при полной ошибке возвращает 0. oldmask — предыдущее значение маски событий мыши данного окна. Если эта функция никогда не вызывается, события мыши никогда не сообщаются.

curses.napms(ms)

Засыпает на ms миллисекунд.

curses.newpad(nlines, ncols)

Создаёт и возвращает указатель на новую структуру данных pad с заданным количеством строк и столбцов. Pad возвращается как объект окна.

Pad похож на окно, но он не ограничен размером экрана и не обязательно связан с определённой частью экрана. Pads могут использоваться, когда необходимо большое окно, и только часть окна будет отображаться на экране в одно время. Автоматическое обновление pads (такое как при прокрутке или эхе ввода) не происходит. Методы refresh() и noutrefresh() pad требуют 6 аргументов для указания части pad, которая должна быть отображена, и местоположения на экране, которое будет использоваться для отображения. Аргументами являются pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol; аргументы p относятся к верхнему левому углу области pad, которая должна быть отображена, а аргументы s определяют область обрезки на экране, внутри которой должна быть отображена область pad.

curses.newwin(nlines, ncols)
curses.newwin(nlines, ncols, begin_y, begin_x)

Возвращает новое окно, верхний левый угол которого находится в (begin_y, begin_x), а высота/ширина — nlines/ncols.

По умолчанию окно будет простираться от указанной позиции до правого нижнего угла экрана.

curses.nl()

Включает режим новой строки. Этот режим преобразует клавишу Ввод в новую строку при вводе и преобразует новую строку в Ввод и перевод строки при выводе. Режим новой строки включён по умолчанию.

curses.nocbreak()

Выходит из режима cbreak. Возвращается к обычному «обработанному» режиму с буферизацией строк.

curses.noecho()

Выходит из режима отображения. Отображение вводимых символов выключается.

curses.nonl()

Выходит из режима новой строки. Отключает преобразование клавиши Ввод в новую строку при вводе и отключает преобразование новой строки в новую строку/возврат на выходе (но это не влияет на поведение addch('\n'), которое всегда выполняет эквивалент возврата и перевода строки на виртуальном экране). При отключённом преобразовании curses иногда немного ускоряет вертикальное перемещение; также оно сможет распознавать клавишу Ввод на вводе.

curses.noqiflush()

При использовании noqiflush() обычная очистка очередей ввода и вывода, связанных с символами INTR, QUIT и SUSP, не выполняется. Возможно, вам потребуется вызвать noqiflush() в обработчике сигналов, если вы хотите, чтобы вывод продолжался так, как будто прерывания не произошло, после выхода обработчика.

curses.noraw()

Выходит из сырого режима. Возвращается к обычному «обработанному» режиму с буферизацией строк.

curses.pair_content(pair_number)

Возвращает кортеж (fg, bg) , содержащий цвета для запрошенной пары цветов. Значение pair_number должно находиться в пределах от 1 до COLOR_PAIRS - 1.

curses.pair_number(attr)

Возвращает номер набора цветовых пар, заданный значением атрибута attr. color_pair() является аналогом этой функции.

curses.putp(string)

Эквивалентно tputs(str, 1, putchar); выводит значение заданной возможности terminfo для текущего терминала. Обратите внимание, что вывод putp() всегда происходит в стандартный вывод.

curses.qiflush([flag])

Если flag равно False, эффект аналогичен вызову noqiflush(). Если flag равно True, или аргумент не указан, очереди будут очищены при чтении этих управляющих символов.

curses.raw()

Переход в режим raw. В режиме raw отключаются обычное буферирование строк и обработка прерываний, выхода, приостановки и управления потоком; символы представляются функциям ввода curses по одному.

curses.reset_prog_mode()

Возвращает терминал в «программный» режим, как он был сохранён ранее функцией def_prog_mode().

curses.reset_shell_mode()

Возвращает терминал в «оболочечный» режим, как он был сохранён ранее функцией def_shell_mode().

curses.resetty()

Восстанавливает состояние режимов терминала до состояния, которое было на момент последнего вызова savetty().

curses.resize_term(nlines, ncols)

Функция бэкенда, используемая функцией resizeterm(), выполняющая основную работу; при изменении размеров окон, resize_term() заполняет расширенные области пустотой. Приложение должно заполнить эти области соответствующими данными. Функция resize_term() пытается изменить размер всех окон. Однако из-за соглашения о вызовах для подушек, изменение размера этих подушек невозможно без дополнительного взаимодействия с приложением.

curses.resizeterm(nlines, ncols)

Изменяет размер стандартных и текущих окон до указанных размеров и корректирует другие данные, используемые библиотекой curses для записи размеров окон (в частности, обработчик SIGWINCH).

curses.savetty()

Сохраняет текущее состояние режимов терминала в буфере, используемом функцией resetty().

curses.setsyx(y, x)

Устанавливает виртуальный курсор экрана в координаты y, x. Если y и x оба равны -1, то устанавливается leaveok.

curses.setupterm([termstr, fd])

Инициализирует терминал. termstr — строка, содержащая имя терминала; если опущен, используется значение переменной среды TERM. fd — дескриптор файла, в который будут отправлены все последовательности инициализации; если не указан, используется дескриптор файла sys.stdout.

curses.start_color()

Необходимо вызвать, если программист хочет использовать цвета, и до вызова любой другой функции манипуляции цветами. Рекомендуется вызывать эту функцию сразу после initscr().

start_color() инициализирует восемь основных цветов (чёрный, красный, зелёный, жёлтый, синий, пурпурный, голубой и белый) и две глобальные переменные в модуле curses, COLORS и COLOR_PAIRS, содержащие максимальное количество цветов и цветовых пар, которые может поддерживать терминал. Также восстанавливает цвета на терминале до значений, которые они имели при включении терминала.

curses.termattrs()

Возвращает логическое ИЛИ всех атрибутов видео, поддерживаемых терминалом. Эта информация полезна, когда программе curses требуется полный контроль над внешним видом экрана.

curses.termname()

Возвращает значение переменной среды TERM, усечённое до 14 символов.

curses.tigetflag(capname)

Возвращает значение булевой возможности, соответствующей имени возможности terminfo capname. Значение -1 возвращается, если capname не является булевой возможностью, или 0 если она отменена или отсутствует в описании терминала.

curses.tigetnum(capname)

Возвращает значение числовой возможности, соответствующей имени возможности terminfo capname. Значение -2 возвращается, если capname не является числовой возможностью, или -1 если она отменена или отсутствует в описании терминала.

curses.tigetstr(capname)

Возвращает значение строковой возможности, соответствующей имени возможности terminfo capname. None возвращается, если capname не является строковой возможностью, или она отменена или отсутствует в описании терминала.

curses.tparm(str[, ...])

Заменяет параметры в строке str, где str должна быть параметризованной строкой, полученной из базы данных terminfo. Например, tparm(tigetstr("cup"), 5, 3) может привести к '\033[6;4H', точный результат зависит от типа терминала.

curses.typeahead(fd)

Указывает, что дескриптор файла fd используется для проверки typeahead. Если fd равно -1, то проверка typeahead не выполняется.

Библиотека curses использует «оптимизацию считывания строки» путём периодической проверки наличия typeahead, в то время как обновляется экран. Если обнаружен ввод, и он поступает с tty, текущее обновление откладывается до вызова refresh или doupdate, что позволяет быстрее реагировать на команды, введённые заранее. Эта функция позволяет указать другой дескриптор файла для проверки typeahead.

curses.unctrl(ch)

Возвращает строку, представляющую собой удобочитаемое представление символа ch. Управляющие символы отображаются как символ «^» и соответствующий символ, например, как ^C. Печатные символы остаются без изменений.

curses.ungetch(ch)

Помещает ch в стек, чтобы следующий getch() вернул его.

Примечание

Можно поместить только один ch в стек до вызова getch().

curses.ungetmouse(id, x, y, z, bstate)

Помещает событие KEY_MOUSE в очередь ввода, связывая с ним данные состояния.

curses.use_env(flag)

Если используется, эта функция должна вызываться до initscr() или newterm. Когда flag равно False, значения строк и столбцов, указанные в базе данных terminfo, будут использоваться, даже если переменные среды LINES и COLUMNS (используемые по умолчанию) установлены, или если curses работает в окне (в этом случае поведение по умолчанию будет использовать размер окна, если LINES и COLUMNS не установлены).

curses.use_default_colors()

Разрешает использование значений по умолчанию для цветов на терминалах, поддерживающих эту функцию. Используйте это для поддержки прозрачности в вашем приложении. Цвет по умолчанию присваивается номеру цвета -1. После вызова этой функции, init_pair(x, curses.COLOR_RED, -1) инициализирует, например, цветовую пару x красным цветом переднего плана на фоне по умолчанию.

curses.wrapper(func, ...)

Инициализирует curses и вызывает другой вызываемый объект func, который должен быть остальной частью вашего приложения, использующего curses. Если приложение генерирует исключение, эта функция восстановит терминал в нормальное состояние перед повторной генерацией исключения и отображением трассировки стека. Вызываемый объект func затем получает главное окно ‘stdscr’ в качестве своего первого аргумента, за которым следуют любые другие аргументы, переданные в wrapper(). Перед вызовом func, wrapper() включает режим cbreak, выключает отображение, включает клавиатуру терминала и инициализирует цвета, если терминал поддерживает цвета. При выходе (будь то нормальном или по исключению) он восстанавливает режим cooked, включает отображение и отключает клавиатуру терминала.

2. Объекты окон

Объекты окон, возвращаемые функциями initscr() и newwin() выше, имеют следующие методы:

window.addch(ch[, attr])
window.addch(y, x, ch[, attr])

Примечание

Символ означает символ C (код ASCII), а не символ Python (строка длиной 1). (Это примечание верно, когда в документации упоминается символ.) Встроенная функция ord() полезна для преобразования строк в коды.

Выведите символ ch в (y, x) с атрибутами attr, перезаписывая любой ранее нарисованный символ в этом месте. По умолчанию, позиция символа и атрибуты соответствуют текущим настройкам объекта окна.

Примечание

Запись за пределами окна, подокна или области вывода вызывает curses.error. Попытка записи в нижний правый угол окна, подокна или области вывода вызовет исключение после вывода символа.

window.addnstr(str, n[, attr])
window.addnstr(y, x, str, n[, attr])

Выведите не более n символов строки str в (y, x) с атрибутами attr, перезаписывая всё ранее отображённое.

window.addstr(str[, attr])
window.addstr(y, x, str[, attr])

Выведите строку str в (y, x) с атрибутами attr, перезаписывая всё ранее отображённое.

Примечание

Запись за пределами окна, подокна или области вывода вызывает curses.error. Попытка записи в нижний правый угол окна, подокна или области вывода вызовет исключение после вывода строки.

window.attroff(attr)

Удалить атрибут attr из набора «фоновых» атрибутов, применяемых ко всем записям в текущем окне.

window.attron(attr)

Добавить атрибут attr в набор «фоновых» атрибутов, применяемых ко всем записям в текущем окне.

window.attrset(attr)

Установить набор «фоновых» атрибутов в attr. Начальное значение — 0 (без атрибутов).

window.bkgd(ch[, attr])

Установить фоновый символ окна на ch с атрибутами attr. Изменение применяется ко всем позициям символов в этом окне:

  • Атрибут каждого символа в окне изменяется на новый фоновый атрибут.
  • Где появлялся предыдущий фоновый символ, он меняется на новый фоновый символ.
window.bkgdset(ch[, attr])

Установить фоновый цвет окна. Фон окна состоит из символа и комбинации атрибутов. Часть атрибутов фона объединяется (логическое ИЛИ) со всеми непустыми символами, которые записываются в окно. Обе части фона (символ и атрибуты) объединяются с пустыми символами. Фон становится свойством символа и перемещается вместе с ним при прокрутке и операциях вставки/удаления строк/символов.

window.border([ls[, rs[, ts[, bs[, tl[, tr[, bl[, br]]]]]]]])

Отобразить рамку вокруг краев окна. Каждый параметр определяет символ для использования в определённой части рамки; см. таблицу ниже для получения более подробной информации. Символы могут быть указаны как целые числа или как строки длиной в один символ.

Примечание

Значение 0 для любого параметра вызовет использование символа по умолчанию для этого параметра. Параметры ключевых слов не могут быть использованы. Значения по умолчанию указаны в этой таблице:

Параметр

Описание

Значение по умолчанию

ls

Левая сторона

ACS_VLINE

rs

Правая сторона

ACS_VLINE

ts

Верх

ACS_HLINE

bs

Низ

ACS_HLINE

tl

Верхний левый угол

ACS_ULCORNER

tr

Верхний правый угол

ACS_URCORNER

bl

Нижний левый угол

ACS_LLCORNER

br

Нижний правый угол

ACS_LRCORNER

window.box([vertch, horch])

Аналогично border(), но оба ls и rs равны vertch, а оба ts и bs равны horch. По умолчанию используются символы углов.

window.chgat(attr)
window.chgat(num, attr)
window.chgat(y, x, attr)
window.chgat(y, x, num, attr)

Установить атрибуты num символов в текущей позиции курсора или в позиции (y, x) если указана. Если num не указано или равно -1, атрибут будет установлен для всех символов до конца строки. Функция перемещает курсор в позицию (y, x) если указана. Изменённая строка будет помечена с помощью метода touchline(), чтобы содержимое было перерисовано при следующем обновлении окна.

window.clear()

Аналогично erase(), но также вызывает перерисовку всего окна при следующем вызове refresh().

window.clearok(yes)

Если yes равно 1, при следующем вызове refresh() окно будет полностью очищено.

window.clrtobot()

Очистить от курсора до конца окна: все строки ниже курсора удаляются, а затем выполняется эквивалент clrtoeol().

window.clrtoeol()

Очистить от курсора до конца строки.

window.cursyncup()

Обновить текущую позицию курсора всех предков окна, чтобы она соответствовала текущей позиции курсора в окне.

window.delch([y, x])

Удалить любой символ в (y, x).

window.deleteln()

Удалить строку под курсором. Все последующие строки смещаются вверх на одну строку.

window.derwin(begin_y, begin_x)
window.derwin(nlines, ncols, begin_y, begin_x)

Аббревиатура от «derive window», derwin() эквивалентна вызову subwin(), за исключением того, что begin_y и begin_x относительны к началу окна, а не к всему экрану. Возвращает объект окна для полученного окна.

window.echochar(ch[, attr])

Добавить символ ch с атрибутом attr и немедленно вызвать refresh() для окна.

window.enclose(y, x)

Проверить, находятся ли заданные экранные координаты ячейки символа внутри заданного окна, возвращая True или False. Это полезно для определения подмножества окон экрана, которые охватывают местоположение события мыши.

window.erase()

Очистить окно.

window.getbegyx()

Возвращает кортеж (y, x) координат верхнего левого угла.

window.getbkgd()

Возвращает текущую пару символ/атрибут фона данного окна.

window.getch([y, x])

Получить символ. Обратите внимание, что возвращаемое целое число не должно находиться в диапазоне ASCII: функциональные клавиши, клавиши управления курсором и так далее возвращают числа больше 256. В режиме без задержки, -1 возвращается, если нет ввода, в противном случае getch() ожидает нажатия клавиши.

window.getkey([y, x])

Получить символ, возвращая строку вместо целого числа, как это делает getch(). Функциональные клавиши, клавиши управления курсором и т.д. возвращают многобайтовую строку, содержащую имя клавиши. В режиме без задержки, если нет ввода, генерируется исключение.

window.getmaxyx()

Возвращает кортеж (y, x) высоты и ширины окна.

window.getparyx()

Возвращает начальные координаты этого окна относительно родительского окна в два целочисленных переменных y и x. Возвращает -1, -1 если у этого окна нет родительского.

END_OF_DOCUMENT_MARKER
window.getstr([y, x])

Считать строку от пользователя с ограниченными возможностями редактирования строк.

window.getyx()

Возвращает кортеж (y, x) текущей позиции курсора относительно верхнего левого угла окна.

window.hline(ch, n)
window.hline(y, x, ch, n)

Отобразить горизонтальную линию, начиная с (y, x), длиной n, состоящую из символа ch.

window.idcok(flag)

Если flag равно False, библиотека curses больше не будет использовать возможности аппаратного вставки/удаления символов терминала; если flag равно True, использование вставки/удаления символов будет включено. При первой инициализации curses использование вставки/удаления символов включено по умолчанию.

window.idlok(yes)

Если вызвано с yes равным 1, curses будет пытаться использовать аппаратные средства редактирования строк. В противном случае вставка/удаление строк будут отключены.

window.immedok(flag)

Если flag равно True, любое изменение изображения окна автоматически вызывает его обновление; вам больше не нужно вызывать refresh() самостоятельно. Однако это может значительно снизить производительность из-за частых вызовов wrefresh. По умолчанию этот параметр отключен.

window.inch([y, x])

Возвращает символ в заданной позиции окна. Нижние 8 бит — это сам символ, а верхние — атрибуты.

window.insch(ch[, attr])
window.insch(y, x, ch[, attr])

Отобразить символ ch в (y, x) с атрибутами attr, сдвигая строку вправо на один символ из позиции x.

window.insdelln(nlines)

Вставить nlines строк в указанное окно над текущей строкой. Нижние nlines строк будут потеряны. Для отрицательного nlines, удалить nlines строк, начиная со строки под курсором, и сместить оставшиеся строки вверх. Нижние nlines строк будут очищены. Текущая позиция курсора останется неизменной.

window.insertln()

Вставить пустую строку под курсором. Все последующие строки смещаются вниз на одну строку.

window.insnstr(str, n[, attr])
window.insnstr(y, x, str, n[, attr])

Вставить строку символов (столько символов, сколько поместится в строке) перед символом под курсором, до n символов. Если n равно нулю или отрицательно, вся строка вставляется. Все символы справа от курсора смещаются вправо, а самые правые символы в строке теряются. Позиция курсора не изменяется (после перемещения в y, x, если указано).

window.insstr(str[, attr])
window.insstr(y, x, str[, attr])

Вставить строку символов (столько символов, сколько поместится в строке) перед символом под курсором. Все символы справа от курсора смещаются вправо, а самые правые символы в строке теряются. Позиция курсора не изменяется (после перемещения в y, x, если указано).

window.instr([n])
window.instr(y, x[, n])

Возвращает строку символов, извлечённых из окна, начиная с текущей позиции курсора или с y, x, если указано. Атрибуты символов удаляются. Если задано n, instr() возвращает строку не более чем из n символов (без завершающего NUL).

window.is_linetouched(line)

Возвращает True, если указанная строка была изменена с момента последнего вызова refresh(); в противном случае возвращает False. Возбуждает исключение curses.error, если line не является допустимым для данного окна.

window.is_wintouched()

Возвращает True, если указанное окно было изменено с момента последнего вызова refresh(); в противном случае возвращает False.

window.keypad(yes)

Если yes равно 1, последовательности escape, сгенерированные некоторыми клавишами (клавишами управления, функциональными клавишами), будут интерпретироваться curses. Если yes равно 0, последовательности escape останутся как есть в потоке ввода.

window.leaveok(yes)

Если yes равно 1, курсор остаётся на месте при обновлении, вместо того, чтобы быть в «позиции курсора». Это уменьшает перемещение курсора, где возможно. Если возможно, курсор будет сделан невидимым.

Если yes равно 0, курсор всегда будет в «позиции курсора» после обновления.

window.move(new_y, new_x)

Переместить курсор в (new_y, new_x).

window.mvderwin(y, x)

Переместить окно внутри родительского окна. Скрин-относительные параметры окна не изменяются. Эта процедура используется для отображения различных частей родительского окна в одном и том же физическом положении на экране.

window.mvwin(new_y, new_x)

Переместить окно так, чтобы его верхний левый угол находился в (new_y, new_x).

window.nodelay(yes)

Если yes равно 1, getch() будет асинхронным.

window.notimeout(yes)

Если yes равно 1, последовательности escape не будут ограничены по времени.

Если yes равно 0, после нескольких миллисекунд последовательность escape не будет интерпретироваться и останется в потоке ввода как есть.

window.noutrefresh()

Отметить для обновления, но подождать. Эта функция обновляет структуру данных, представляющую желаемое состояние окна, но не заставляет обновить физический экран. Для этого вызовите doupdate().

window.overlay(destwin[, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol])

Перекрыть окно поверх destwin. Окна не обязательно должны быть одинакового размера, копируется только перекрывающаяся область. Эта копия не разрушает данные, что означает, что текущий символ фона не перезаписывает старое содержимое destwin.

Для получения более тонкого контроля над копируемой областью можно использовать вторую форму overlay(). sminrow и smincol — координаты верхнего левого угла исходного окна, а остальные переменные обозначают прямоугольник в окне назначения.

window.overwrite(destwin[, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol])

Переписать окно поверх destwin. Окна не обязательно должны быть одинакового размера, в этом случае копируется только перекрывающаяся область. Эта копия разрушает данные, что означает, что текущий символ фона перезаписывает старое содержимое destwin.

Для получения более тонкого контроля над копируемой областью можно использовать вторую форму overwrite(). sminrow и smincol — координаты верхнего левого угла исходного окна, а остальные переменные обозначают прямоугольник в окне назначения.

window.putwin(file)

Записать все данные, связанные с окном, в предоставленный объект файла. Эту информацию можно позже получить с помощью функции getwin().

window.redrawln(beg, num)

Указать, что num строк экрана, начиная со строки beg, повреждены и должны быть полностью перерисованы при следующем вызове refresh().

window.redrawwin()

Коснуться всего окна, вызвав полную его перерисовку при следующем вызове refresh() вызова.

window.refresh([pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol])

Немедленно обновить отображение (синхронизировать фактический экран с предыдущими методами рисования/удаления).

6 необязательных аргументов могут быть указаны только тогда, когда окно является областью, созданной с помощью newpad(). Дополнительные параметры необходимы для указания какой части области и экрана задействованы. pminrow и pmincol определяют верхний левый угол отображаемого прямоугольника в области. sminrow, smincol, smaxrow и smaxcol определяют края прямоугольника, отображаемого на экране. Нижний правый угол отображаемого прямоугольника в области рассчитывается из экранных координат, так как прямоугольники должны быть одинакового размера. Оба прямоугольника должны быть полностью содержаться в своих соответствующих структурах. Отрицательные значения pminrow, pmincol, sminrow или smincol обрабатываются так, как если бы они были нулями.

window.resize(nlines, ncols)

Перераспределить память для окна curses, чтобы изменить его размеры на указанные значения. Если любой из размеров больше текущих значений, данные окна заполняются пробелами, в которые интегрировано текущее отображение фона (как установлено с помощью bkgdset())

window.scroll([lines=1])

Прокрутить экран или область прокрутки вверх на lines строк.

window.scrollok(flag)

Управление тем, что происходит, когда курсор окна выходит за пределы окна или области прокрутки, либо в результате действия перехода на новую строку в нижней строке, либо при вводе последнего символа последней строки. Если flag ложно, курсор остается на нижней строке. Если flag истинно, окно прокручивается вверх на одну строку. Обратите внимание, что для получения физического эффекта прокрутки на терминале также необходимо вызвать idlok().

window.setscrreg(top, bottom)

Установить область прокрутки от строки top до строки bottom. Все действия прокрутки будут выполняться в этой области.

window.standend()

Отключить выделенный атрибут. На некоторых терминалах это также приводит к отключению всех атрибутов.

window.standout()

Включить атрибут A_STANDOUT.

window.subpad(begin_y, begin_x)
window.subpad(nlines, ncols, begin_y, begin_x)

Возвращает подокно, верхний левый угол которого находится в (begin_y, begin_x), а ширина/высота равна ncols/nlines.

window.subwin(begin_y, begin_x)
window.subwin(nlines, ncols, begin_y, begin_x)

Возвращает подокно, верхний левый угол которого находится в (begin_y, begin_x), а ширина/высота равна ncols/nlines.

По умолчанию подокно будет простираться от указанной позиции до нижнего правого угла окна.

window.syncdown()

Обработать каждый элемент в окне, который был обработан в любом из его родительских окон. Эта функция вызывается refresh(), поэтому её вызов вручную почти никогда не требуется.

window.syncok(flag)

Если вызов производится с flag, установленным в True, тогда syncup() вызывается автоматически всякий раз, когда происходит изменение в окне.

window.syncup()

Обработать все элементы в родительских окнах, которые были изменены в текущем окне.

window.timeout(delay)

Установить поведение чтения для окна – блокирующее или неблокирующее. Если delay отрицательно, используется блокирующее чтение (которое будет ждать ввода неопределённо долго). Если delay равно нулю, используется неблокирующее чтение, и -1 будет возвращено getch(), если ввод не ожидается. Если delay положительно, то getch() будет блокироваться на delay миллисекунд и вернёт -1, если ввод всё ещё не ожидается по истечении этого времени.

window.touchline(start, count[, changed])

Представить, что изменено count строк, начиная со строки start. Если указано changed, оно определяет, помечены ли затронутые строки как изменённые (changed=1) или неизменённые (changed=0).

window.touchwin()

Представить, что всё окно было изменено, для оптимизации отрисовки.

window.untouchwin()

Пометить все строки в окне как неизменённые с момента последнего вызова refresh().

window.vline(ch, n)
window.vline(y, x, ch, n)

Отобразить вертикальную линию, начинающуюся в (y, x), длиной n, состоящую из символа ch.

3. Константы

Модуль curses определяет следующие члены данных:

curses.ERR

Некоторые функции curses, возвращающие целое число, такие как getch(), возвращают ERR при ошибке.

curses.OK

Некоторые функции curses, возвращающие целое число, такие как napms(), возвращают OK при успехе.

curses.version

Строка, представляющая текущую версию модуля. Также доступна как __version__.

Некоторые константы доступны для указания атрибутов ячейки символов. Точные доступные константы зависят от системы.

Атрибут

Значение

A_ALTCHARSET

Режим альтернатного набора символов

A_BLINK

Режим мигания

A_BOLD

Режим полужирного начертания

A_DIM

Режим затемнения

A_INVIS

Режим скрытия или пустого отображения

A_NORMAL

Нормальный атрибут

A_PROTECT

Режим защиты

A_REVERSE

Инвертировать цвета фона и переднего плана

A_STANDOUT

Режим выделения

A_UNDERLINE

Режим подчеркивания

A_HORIZONTAL

Горизонтальное выделение

A_LEFT

Выделение слева

A_LOW

Выделение снизу

A_RIGHT

Выделение справа

A_TOP

Выделение сверху

A_VERTICAL

Вертикальное выделение

A_CHARTEXT

Маска для извлечения символа

Несколько констант доступны для извлечения соответствующих атрибутов, возвращаемых некоторыми методами.

Маска

Значение

A_ATTRIBUTES

Маска для извлечения атрибутов

A_CHARTEXT

Маска для извлечения символа

A_COLOR

Маска для извлечения информации о паре цветов

Клавиши обозначаются целочисленными константами с именами, начинающимися с KEY_. Точные наборы клавиш зависят от системы.

Ключевой константный элемент

Ключ

KEY_MIN

Минимальное значение ключа

KEY_BREAK

Ключ разрыва (ненадёжный)

KEY_DOWN

Стрелка вниз

KEY_UP

Стрелка вверх

KEY_LEFT

Стрелка влево

KEY_RIGHT

Стрелка вправо

KEY_HOME

Ключ «Домой» (стрелка вверх + влево)

KEY_BACKSPACE

Backspace (ненадёжный)

KEY_F0

Клавиши функций. Поддерживается до 64 клавиш функций.

KEY_Fn

Значение клавиши функции n

KEY_DL

Удалить строку

KEY_IL

Вставить строку

KEY_DC

Удалить символ

KEY_IC

Вставить символ или войти в режим вставки

KEY_EIC

Выход из режима вставки символов

KEY_CLEAR

Очистить экран

KEY_EOS

Очистить до конца экрана

KEY_EOL

Очистить до конца строки

KEY_SF

Прокрутить на 1 строку вперёд

KEY_SR

Прокрутить на 1 строку назад (обратное)

KEY_NPAGE

Следующая страница

KEY_PPAGE

Предыдущая страница

KEY_STAB

Установить отступ

KEY_CTAB

Очистить отступ

KEY_CATAB

Очистить все отступы

KEY_ENTER

Ввод или отправка (ненадёжный)

KEY_SRESET

Мягкий (частичный) сброс (ненадёжный)

KEY_RESET

Сброс или жёсткий сброс (ненадёжный)

KEY_PRINT

Печать

KEY_LL

Вниз по домашней странице или низ (нижний левый)

KEY_A1

Верхний левый блок клавиатуры

KEY_A3

Верхний правый блок клавиатуры

KEY_B2

Центр клавиатуры

KEY_C1

Нижний левый блок клавиатуры

KEY_C3

Нижний правый блок клавиатуры

KEY_BTAB

Обратный табулятор

KEY_BEG

Начало (начало)

KEY_CANCEL

Отмена

KEY_CLOSE

Закрыть

KEY_COMMAND

Cmd (команда)

KEY_COPY

Копировать

KEY_CREATE

Создать

KEY_END

Конец

KEY_EXIT

Выход

KEY_FIND

Найти

KEY_HELP

Справка

KEY_MARK

Отметить

KEY_MESSAGE

Сообщение

KEY_MOVE

Переместить

KEY_NEXT

Следующий

KEY_OPEN

Открыть

KEY_OPTIONS

Параметры

KEY_PREVIOUS

Пред (предыдущий)

KEY_REDO

Повторить

KEY_REFERENCE

Спр (ссылка)

KEY_REFRESH

Обновить

KEY_REPLACE

Заменить

KEY_RESTART

Перезапустить

KEY_RESUME

Возобновить

KEY_SAVE

Сохранить

KEY_SBEG

Смещенный Начало (начало)

KEY_SCANCEL

Смещенная Отмена

KEY_SCOMMAND

Смещенная Команда

KEY_SCOPY

Смещенная Копировать

KEY_SCREATE

Смещенная Создать

KEY_SDC

Смещенная Удалить символ

KEY_SDL

Смещенная Удалить строку

KEY_SELECT

Выбрать

KEY_SEND

Смещенный Конец

KEY_SEOL

Смещенная Очистить строку

KEY_SEXIT

Смещенный Выход

KEY_SFIND

Смещенная Найти

KEY_SHELP

Смещенная Справка

KEY_SHOME

Смещенная Домой

KEY_SIC

Смещенный Ввод

KEY_SLEFT

Смещенная Стрелка влево

KEY_SMESSAGE

Смещенное Сообщение

KEY_SMOVE

Смещенное Переместить

KEY_SNEXT

Смещенный Следующий

KEY_SOPTIONS

Смещенные Параметры

KEY_SPREVIOUS

Смещенный Пред

KEY_SPRINT

Смещенная Печать

KEY_SREDO

Смещенное Повторить

KEY_SREPLACE

Смещенная Заменить

KEY_SRIGHT

Смещенная Стрелка вправо

KEY_SRSUME

Смещенное Возобновить

KEY_SSAVE

Смещенное Сохранить

KEY_SSUSPEND

Смещенное Приостановить

KEY_SUNDO

Смещенное Отменить

KEY_SUSPEND

Приостановить

KEY_UNDO

Отменить

KEY_MOUSE

Произошло событие мыши

KEY_RESIZE

Событие изменения размера терминала

KEY_MAX

Максимальное значение ключа

На VT100 и их программных эмуляциях, таких как эмуляторы X-терминалов, обычно доступны как минимум четыре клавиши функций (KEY_F1, KEY_F2, KEY_F3, KEY_F4). И стрелки-клавиши отображены как KEY_UP, KEY_DOWN, KEY_LEFT и KEY_RIGHT очевидным образом. Если у вашего компьютера ПК-клавиатура, то ожидайте стрелки и двенадцать клавиш функций (у более старых ПК-клавиатур может быть только десять клавиш функций); также стандартными являются следующие отображения клавиатуры:

Надпись на клавише

Константа

Вставить

KEY_IC

Удалить

KEY_DC

Домой

KEY_HOME

Конец

KEY_END

Страница вверх

KEY_PPAGE

Страница вниз

KEY_NPAGE

В следующей таблице перечислены символы из альтернативного набора символов. Эти символы унаследованы от терминала VT100 и обычно доступны в программных эмуляциях, таких как X-терминалы. В случае отсутствия графического изображения curses возвращается к грубой печатной ASCII-аппроксимации.

Примечание

Они доступны только после того, как был вызван initscr().

Код ACS

Значение

ACS_BBSS

запасное имя для правого верхнего угла

ACS_BLOCK

сплошной квадратный блок

ACS_BOARD

доска из квадратов

ACS_BSBS

запасное имя для горизонтальной линии

ACS_BSSB

запасное имя для левого верхнего угла

ACS_BSSS

запасное имя для верхней Т-образной детали

ACS_BTEE

нижняя Т-образная деталь

ACS_BULLET

пуля

ACS_CKBOARD

шахматная доска (штриховка)

ACS_DARROW

стрелка, указывающая вниз

ACS_DEGREE

символ градуса

ACS_DIAMOND

ромб

ACS_GEQUAL

больше или равно

ACS_HLINE

горизонтальная линия

ACS_LANTERN

символ фонаря

ACS_LARROW

стрелка влево

ACS_LEQUAL

меньше или равно

ACS_LLCORNER

левый нижний угол

ACS_LRCORNER

правый нижний угол

ACS_LTEE

левая Т-образная деталь

ACS_NEQUAL

знак не равно

ACS_PI

буква пи

ACS_PLMINUS

знак плюс-минус

ACS_PLUS

большой знак плюс

ACS_RARROW

стрелка вправо

ACS_RTEE

правая Т-образная деталь

ACS_S1

строка сканирования 1

ACS_S3

строка сканирования 3

ACS_S7

строка сканирования 7

ACS_S9

строка сканирования 9

ACS_SBBS

запасное имя для правого нижнего угла

ACS_SBSB

запасное имя для вертикальной линии

ACS_SBSS

запасное имя для правой Т-образной детали

ACS_SSBB

запасное имя для левого нижнего угла

ACS_SSBS

запасное имя для нижней Т-образной детали

ACS_SSSB

запасное имя для левой Т-образной детали

ACS_SSSS

запасное имя для перекрестья или большого плюса

ACS_STERLING

фунт стерлингов

ACS_TTEE

верхняя Т-образная деталь

ACS_UARROW

стрелка вверх

ACS_ULCORNER

левый верхний угол

ACS_URCORNER

правый верхний угол

ACS_VLINE

вертикальная линия

В следующей таблице перечислены предопределенные цвета:

Константа

Цвет

COLOR_BLACK

Черный

COLOR_BLUE

Синий

COLOR_CYAN

Голубой (светло-зеленоватый синий)

COLOR_GREEN

Зеленый

COLOR_MAGENTA

Пурпурный (лиловый красный)

COLOR_RED

Красный

COLOR_WHITE

Белый

COLOR_YELLOW

Желтый

curses.textpad — Виджет ввода текста для программ curses

Новая версия 1.6.

Модуль curses.textpad предоставляет класс Textbox, который обрабатывает элементарный ввод текста в окне curses, поддерживая набор сочетаний клавиш, напоминающих сочетания клавиш Emacs (а также сочетания клавиш Netscape Navigator, BBedit 6.x, FrameMaker и многих других программ). Модуль также предоставляет функцию рисования прямоугольника, которая полезна для обрамления текстовых полей или для других целей.

Модуль curses.textpad определяет следующую функцию:

curses.textpad.rectangle(win, uly, ulx, lry, lrx)

Отобразить прямоугольник. Первый аргумент должен быть объектом окна; оставшиеся аргументы — координаты относительно этого окна. Второй и третий аргументы — координаты y и x верхнего левого угла отображаемого прямоугольника; четвертый и пятый аргументы — координаты y и x нижнего правого угла. Прямоугольник будет отображаться с использованием символов VT100/IBM PC в терминалах, которые это позволяют (включая xterm и большинство других эмуляторов терминалов). В противном случае он будет отображаться с использованием ASCII-тире, вертикальных линий и знаков плюс.

1. Объекты Textbox

Вы можете создать объект Textbox следующим образом:

class curses.textpad.Textbox(win)

Возвращает объект виджета текстового поля. Аргумент win должен быть объектом curses WindowObject , в котором будет содержаться текстовое поле. Курсор редактирования текстового поля изначально расположен в верхнем левом углу содержащего окна с координатами (0, 0). Флаг экземпляра stripspaces изначально включён.

Textbox объекты имеют следующие методы:

edit([validator])

Это точка входа, которую вы обычно используете. Она принимает нажатия клавиш редактирования, пока не будет введено одна из клавиш завершения. Если задан validator, он должен быть функцией. Она будет вызываться для каждой нажатой клавиши с нажатой клавишей в качестве параметра; обработка команд выполняется по результату. Этот метод возвращает содержимое окна в виде строки; учитываются ли пробелы в окне, зависит от атрибута stripspaces.

do_command(ch)

Обрабатывает одиночное нажатие клавиши команды. Вот поддерживаемые специальные нажатия клавиш:

Нажатие клавиши

Действие

Control-A

Перейти к левому краю окна.

Control-B

Курсор влево, переходя к предыдущей строке, если это уместно.

Control-D

Удалить символ под курсором.

Control-E

Перейти к правому краю (stripspaces выключен) или к концу строки (stripspaces включен).

Control-F

Курсор вправо, переходя к следующей строке, когда это уместно.

Control-G

Завершить, вернув содержимое окна.

Control-H

Удалить символ назад.

Control-J

Завершить, если окно состоит из 1 строки, иначе вставить новую строку.

Control-K

Если строка пуста, удалить её, иначе очистить до конца строки.

Control-L

Обновить экран.

Control-N

Курсор вниз; переместить вниз на одну строку.

Control-O

Вставить пустую строку в положение курсора.

Control-P

Курсор вверх; переместить вверх на одну строку.

Операции перемещения ничего не делают, если курсор находится на краю, где перемещение невозможно. Поддерживаются следующие синонимы, где это возможно:

Константа

Нажатие клавиши

KEY_LEFT

Control-B

KEY_RIGHT

Control-F

KEY_UP

Control-P

KEY_DOWN

Control-N

KEY_BACKSPACE

Control-h

Все остальные нажатия клавиш обрабатываются как команда вставить заданный символ и переместить вправо (с переносом строки).

gather()

Возвращает содержимое окна в виде строки; учитываются ли пробелы в окне, зависит от члена stripspaces.

stripspaces

Этот атрибут является флагом, который контролирует интерпретацию пробелов в окне. Когда он включён, пробелы в конце каждой строки игнорируются; любое движение курсора, которое поместило бы курсор на конечный пробел, переходит в конец этой строки вместо этого, и конечные пробелы удаляются при сборе содержимого окна.

© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/curses.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API