curses — Обработка терминала для дисплеев с символьно-ячейковой организацией
Исходный код: Lib/curses
Модуль curses предоставляет интерфейс к библиотеке curses, фактическому стандарту для портативной расширенной обработки терминала.
Хотя curses наиболее широко используется в среде Unix, версии доступны для Windows, DOS и, возможно, других систем. Этот расширяемый модуль разработан для соответствия API ncurses, открытой библиотеке curses, размещённой в Linux и BSD-вариантах Unix.
Доступность: не Android, не iOS, не WASI.
Этот модуль не поддерживается на мобильных платформах или платформах WebAssembly.
Примечание
Всякий раз, когда в документации упоминается символ, он может быть задан как целое число, строка Unicode из одного символа или строка байтов длиной в один байт.
Всякий раз, когда в документации упоминается строка символов, она может быть задана как строка Unicode или строка байтов.
См. также
-
Modulecurses.ascii -
Утилиты для работы с ASCII-символами, независимо от настроек вашего региональных параметров.
-
Modulecurses.panel -
Расширение стека панелей, которое добавляет глубину окнам curses.
-
Modulecurses.textpad -
Редактируемый текстовый виджет для curses, поддерживающий привязки в стиле Emacs.
- Программирование с использованием curses в Python
-
Материал учебника по использованию curses с Python, авторы: Andrew Kuchling и Eric Raymond.
Функции
Модуль 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 - 1. Возвращает кортеж из 3 элементов, содержащий значения R,G,B для данного цвета, которые будут между0(нет компоненты) и1000(максимальное количество компоненты).
-
curses.color_pair(pair_number) -
Возвращает значение атрибута для отображения текста в указанной паре цветов. Поддерживаются только первые 256 пар цветов. Это значение атрибута можно комбинировать с
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() -
Возвращает текущий символ стирания пользователя в виде объекта bytes длиной один байт. Под Unix-подобными операционными системами это свойство управляющего tty программы curses, и оно не устанавливается самой библиотекой curses.
-
curses.filter() -
Функция
filter(), если используется, должна быть вызвана до вызоваinitscr(). Эффект заключается в том, что во время этих вызововLINESустанавливается в1; возможностиclear,cup,cud,cud1,cuu1,cuu,vpaотключаются; и строкаhomeустанавливается в значениеcr. Эффект заключается в том, что курсор ограничен текущей строкой, как и обновления экрана. Это может быть использовано для включения редактирования строк по одному символу за раз, не затрагивая остальной экран.
-
curses.flash() -
Мигнуть экраном. То есть, изменить его на режим обратного видео, а затем вернуть его обратно в короткий интервал. Некоторые предпочитают такой «видимый звонок» звуковому сигналу внимания, производимому
beep().
-
curses.flushinp() -
Очистить все буферы ввода. Это отбрасывает любой введенный пользователем предварительный ввод, который еще не был обработан программой.
-
curses.getmouse() -
После того, как
getch()возвращаетKEY_MOUSEдля сигнализации о событии мыши, эта функция должна быть вызвана для получения очереди событий мыши, представленной в виде 5-кортежа(id, x, y, z, bstate). id — значение ID, используемое для различения нескольких устройств, а x, y, z — координаты события. (z в настоящее время не используется.) bstate — целочисленное значение, биты которого будут установлены для указания типа события и будет являться побитовым ИЛИ одного или нескольких из следующих констант, где n — номер кнопки от 1 до 5:BUTTONn_PRESSED,BUTTONn_RELEASED,BUTTONn_CLICKED,BUTTONn_DOUBLE_CLICKED,BUTTONn_TRIPLE_CLICKED,BUTTON_SHIFT,BUTTON_CTRL,BUTTON_ALT.Изменено в версии 3.10: Константы
BUTTON5_*теперь доступны, если они предоставляются базовой библиотекой curses.
-
curses.getsyx() -
Возвращает текущие координаты виртуального курсора экрана в виде кортежа
(y, x). Еслиleaveokв настоящее времяTrue, то возвращает(-1, -1).
-
curses.getwin(file) -
Чтение данных, относящихся к окну, сохранённых в файле предыдущим вызовом
window.putwin(). Затем процедура создаёт и инициализирует новое окно с использованием этих данных, возвращая новый объект окна.
-
curses.has_colors() -
Возвращает
True, если терминал может отображать цвета; в противном случае, возвращаетFalse.
-
curses.has_extended_color_support() -
Возвращает
True, если модуль поддерживает расширенные цвета; в противном случае, возвращаетFalse. Расширенная поддержка цветов позволяет более чем 256 парам цветов для терминалов, поддерживающих более 16 цветов (например, xterm-256color).Расширенная поддержка цветов требует ncurses версии 6.1 или более поздней.
Добавлен в версии 3.10.
-
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 - 1. Каждое из r, g, b должно быть значением от0до1000. При использованииinit_color(), все вхождения этого цвета на экране немедленно меняются на новое определение. Эта функция является бесполезной для большинства терминалов; она активна только еслиcan_change_color()возвращаетTrue.
-
curses.init_pair(pair_number, fg, bg) -
Изменяет определение пары цветов. Она принимает три аргумента: номер изменяемой пары цветов, номер цвета переднего плана и номер цвета заднего плана. Значение pair_number должно быть между
1иCOLOR_PAIRS - 1(пара цветов0связана с белым цветом на чёрном и не может быть изменена). Значения аргументов fg и bg должны быть между0иCOLORS - 1, или, после вызоваuse_default_colors(),-1.Если пара цветов была ранее инициализирована, экран обновляется, и все вхождения этой пары цветов изменяются на новое определение.
-
curses.initscr() -
Инициализация библиотеки. Возвращает объект окно, который представляет весь экран.
Примечание
Если есть ошибка открытия терминала, лежащая в основе библиотека curses может привести к выходу интерпретатора.
-
curses.is_term_resized(nlines, ncols) -
Возвращает
True, еслиresize_term()изменит структуру окна,Falseв противном случае.
-
curses.isendwin() -
Возвращает
True, еслиendwin()был вызван (то есть, библиотека curses была деинициализирована).
-
curses.keyname(k) -
Возвращает имя клавиши с номером k как объект bytes. Имя клавиши, генерирующей печатаемый символ ASCII, — это символ клавиши. Имя комбинации клавиши с символом управления — это двухбайтовый объект bytes, состоящий из знака каретки (
b'^') и соответствующего печатаемого символа ASCII. Имя комбинации клавиши alt (128–255) — это объект bytes, состоящий из префиксаb'M-'и имени соответствующего символа ASCII.
-
curses.killchar() -
Возвращает текущий символ уничтожения строки пользователя как однобайтовый объект bytes. В Unix-подобных операционных системах это свойство управляющего tty программы curses, и оно не устанавливается самой библиотекой curses.
-
curses.longname() -
Возвращает объект bytes, содержащий поле terminfo long name, описывающее текущий терминал. Максимальная длина подробного описания — 128 символов. Оно определено только после вызова
initscr().
-
curses.meta(flag) -
Если flag — это
True, разрешить ввод 8-битных символов. Если flag — этоFalse, разрешить только 7-битные символы.
-
curses.mouseinterval(interval) -
Устанавливает максимальное время в миллисекундах, которое может пройти между событиями нажатия и отпускания, чтобы они распознавались как щелчок, и возвращает предыдущее значение интервала. Значение по умолчанию — 200 миллисекунд, или одна пятая секунды.
-
curses.mousemask(mousemask) -
Устанавливает события мыши, которые будут сообщаться, и возвращает кортеж
(availmask, oldmask). availmask указывает, какие из указанных событий мыши могут быть сообщены; при полной неудаче возвращает0. oldmask — предыдущее значение маски событий мыши данного окна. Если эта функция никогда не вызывается, события мыши никогда не сообщаются.
-
curses.napms(ms) -
Отложить выполнение на ms миллисекунд.
-
curses.newpad(nlines, ncols) -
Создаёт и возвращает указатель на новую структуру данных пакета с заданным количеством строк и столбцов. Возвращает пакет как объект окна.
Пакет похож на окно, за исключением того, что он не ограничен размером экрана и не обязательно связан с какой-либо конкретной частью экрана. Пакеты могут использоваться, когда необходимо большое окно, и только часть окна будет отображаться на экране в данный момент. Автоматическое обновление пакетов (например, при прокрутке или эхо-отображении ввода) не происходит. Методы
refresh()иnoutrefresh()пакета требуют 6 аргументов для указания части пакета, которая должна отображаться, и местоположения на экране, которое должно использоваться для отображения. Аргументы — pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol; аргументы p относятся к верхнему левому углу области пакета, который должен быть отображён, а аргументы s определяют область обрезки на экране, внутри которой должна быть отображена область пакета.
-
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 должно быть в диапазоне от0доCOLOR_PAIRS - 1.
-
curses.pair_number(attr) -
Возвращает номер набора пар цветов, заданный значением атрибута attr.
color_pair()является обратной функцией для этой функции.
-
curses.putp(str) -
Эквивалентно
tputs(str, 1, putchar); выводит значение указанной возможности terminfo для текущего терминала. Обратите внимание, что выводputp()всегда направляется в стандартный вывод.
-
curses.qiflush([flag]) -
Если flag имеет значение
False, эффект аналогичен вызовуnoqiflush(). Если flag имеет значениеTrue, или аргумент не указан, очереди будут очищены при чтении этих управляющих символов.
-
curses.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.get_escdelay() -
Извлекает значение, установленное функцией
set_escdelay().Добавлена в версии 3.9.
-
curses.set_escdelay(ms) -
Устанавливает количество миллисекунд, которые нужно подождать после чтения управляющего символа, чтобы отличить введённый непосредственно символ escape от последовательностей escape, отправленных клавишами курсора и функциональными клавишами.
Добавлена в версии 3.9.
-
curses.get_tabsize() -
Извлекает значение, установленное функцией
set_tabsize().Добавлена в версии 3.9.
-
curses.set_tabsize(size) -
Устанавливает количество столбцов, используемых библиотекой curses при преобразовании символа табуляции в пробелы при добавлении табуляции в окно.
Добавлена в версии 3.9.
-
curses.setsyx(y, x) -
Устанавливает курсор виртуального экрана в положение y, x. Если y и x оба равны
-1, то функцияleaveokустанавливается в значениеTrue.
-
curses.setupterm(term=None, fd=-1) -
Инициализация терминала. term – строка, содержащая имя терминала, или
None; если опущено илиNone, будет использовано значение переменной средыTERM. fd – дескриптор файла, в который будут отправлены все последовательности инициализации; если не указан или-1, будет использоваться дескриптор файла для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 не является строковой возможностью terminfo, или она отменена или отсутствует в описании терминала.
-
curses.tparm(str[, ...]) -
Создаёт объект байтов str с предоставленными параметрами, где str должна быть параметризованная строка, полученная из базы данных terminfo. Например,
tparm(tigetstr("cup"), 5, 3)может привести кb'\033[6;4H', точный результат зависит от типа терминала.
-
curses.typeahead(fd) -
Укажите, что для проверки предварительного ввода должен использоваться дескриптор файла fd. Если fd равен
-1, предварительный ввод не проверяется.Библиотека curses выполняет «оптимизацию разбиения строк», периодически проверяя наличие предварительного ввода при обновлении экрана. Если входные данные обнаружены и они поступают из tty, текущее обновление откладывается до вызова refresh или doupdate, что позволяет быстрее реагировать на команды, введенные заранее. Эта функция позволяет указать другой дескриптор файла для проверки предварительного ввода.
-
curses.unctrl(ch) -
Возвращает объект bytes, представляющий собой удобочитаемое представление символа ch. Управляющие символы представлены как символ «^» перед символом, например,
b'^C'. Печатные символы возвращаются без изменений.
-
curses.ungetch(ch) -
Поместите ch в очередь, чтобы следующее обращение к
getch()вернуло его.Примечание
Только один символ ch может быть помещён в очередь до вызова
getch().
-
curses.update_lines_cols() -
Обновить переменные модуля
LINESиCOLS. Полезно для определения ручного изменения размера экрана.Добавлена в версии 3.5.
-
curses.unget_wch(ch) -
Поместите ch в очередь, чтобы следующее обращение к
get_wch()вернуло его.Примечание
Только один символ ch может быть помещён в очередь до вызова
get_wch().Добавлена в версии 3.3.
-
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, /, *args, **kwargs) -
Инициализирует curses и вызывает другой вызываемый объект, func, который должен представлять собой остальную часть вашего приложения, использующего curses. Если приложение вызывает исключение, эта функция восстановит терминал в нормальное состояние перед повторной генерацией исключения и выводом трассировки стека. Вызываемый объект func затем получает главное окно ‘stdscr’ в качестве первого аргумента, а также любые другие аргументы, переданные в
wrapper(). Перед вызовом func,wrapper()включает режим cbreak, отключает эхо, включает клавиатуру терминала и инициализирует цвета, если терминал поддерживает цвет. При выходе (как нормальном, так и по исключению) он восстанавливает режим cooked, включает эхо и отключает клавиатуру терминала.
Объекты окон
Объекты окон, возвращаемые функциями initscr() и newwin(), имеют следующие методы и атрибуты:
-
window.addch(ch[, attr]) - window.addch(y, x, ch[, attr])
-
Отображает символ 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. Попытка записи в нижний правый угол окна, подокна или области вывода приведет к исключению после вывода строки. - Ошибка в ncurses, бэкенде этого модуля Python, может привести к SegFault при изменении размеров окон. Это исправлено в ncurses-6.1-20190511. Если у вас более старая версия ncurses, вы можете избежать этой проблемы, если не вызываете
addstr()со строкой, содержащей встроенные символы перевода строки. Вместо этого вызовитеaddstr()для каждой строки по отдельности.
- Запись за пределами окна, подокна или области вывода вызывает
-
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
Левая сторона
rs
Правая сторона
ts
Верх
bs
Низ
tl
Левый верхний угол
tr
Правый верхний угол
bl
Левый нижний угол
br
Правый нижний угол
-
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(flag) -
Если flag равно
True, следующий вызов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)
-
Сокращение от «производное окно»,
derwin()эквивалентно вызовуsubwin(), за исключением того, что begin_y и begin_x относительны к началу окна, а не к всему экрану. Возвращает объект окна для производного окна.
-
window.echochar(ch[, attr]) -
Добавить символ ch с атрибутом attr и немедленно вызвать
refresh()для окна.
-
window.enclose(y, x) -
Проверить, заключены ли заданные координаты символьных ячеек (относительно экрана) данным окном, возвращая
TrueилиFalse. Это полезно для определения подмножества окон экрана, которые содержат местоположение события мыши.Изменено в версии 3.10: Ранее возвращались
1или0вместоTrueилиFalse.
-
window.encoding -
Кодировка, используемая для кодирования аргументов метода (строки и символы Unicode). Атрибут кодировки наследуется от родительского окна при создании дочернего окна, например, с помощью
window.subwin(). По умолчанию используется кодировка текущего языка (см.locale.getencoding()).Добавлена в версии 3.3.
-
window.erase() -
Очистить окно.
-
window.getbegyx() -
Возвращает кортеж
(y, x)координат верхнего левого угла.
-
window.getbkgd() -
Возвращает текущую пару символа/атрибута фона данного окна.
-
window.getch([y, x]) -
Получить символ. Обратите внимание, что возвращаемое целое число не обязательно должно находиться в диапазоне ASCII: функциональные клавиши, клавиши клавиатуры и так далее представлены числами больше 255. В режиме без задержки, возвращает
-1если нет ввода, иначе ожидает нажатия клавиши.
-
window.get_wch([y, x]) -
Получить широкий символ. Возвращает символ для большинства клавиш или целое число для функциональных клавиш, клавиш клавиатуры и других специальных клавиш. В режиме без задержки, генерирует исключение, если нет ввода.
Добавлена в версии 3.3.
-
window.getkey([y, x]) -
Получить символ, возвращая строку вместо целого числа, как это делает
getch(). Функциональные клавиши, клавиши клавиатуры и другие специальные клавиши возвращают многобайтовую строку, содержащую имя клавиши. В режиме без задержки, генерирует исключение, если нет ввода.
-
window.getmaxyx() -
Возвращает кортеж
(y, x)высоты и ширины окна.
-
window.getparyx() -
Возвращает начальные координаты этого окна относительно родительского окна в виде кортежа
(y, x). Возвращает(-1, -1)если у этого окна нет родителя.
-
window.getstr() - window.getstr(n)
- window.getstr(y, x)
- window.getstr(y, x, n)
-
Считывает байтовую строку от пользователя с примитивными возможностями редактирования строк.
-
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(flag) -
Если flag равно
True,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(flag) -
Если flag равно
True, последовательности escape, генерируемые некоторыми клавишами (клавишей управления, функциональными клавишами), будут интерпретироватьсяcurses. Если flag равноFalse, последовательности escape будут оставаться такими же в потоке ввода.
-
window.leaveok(flag) -
Если flag равно
True, курсор остаётся на месте при обновлении, а не находится в «позиции курсора». Это уменьшает перемещение курсора, где это возможно. Если возможно, курсор будет сделан невидимым. Если flag равноFalse, курсор всегда будет в «позиции курсора» после обновления.
-
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(flag) -
Если flag равно
True,getch()будет неблокирующим.
-
window.notimeout(flag) -
Если flag равно
True, последовательности escape не будут ограничены по времени. Если flag равноFalse, после нескольких миллисекунд последовательность 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 равно
False, курсор остается в нижней строке. Если flag равноTrue, окно прокручивается вверх на одну строку. Обратите внимание, что для получения физического эффекта прокрутки на терминале также необходимо вызвать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 равно нулю, используется неблокирующее чтение, и
getch()вернёт-1, если ввод не ожидается. Если delay положительно, тоgetch()будет блокироваться на delay миллисекунд и вернёт-1, если ввода всё ещё нет по истечении этого времени.
-
window.touchline(start, count[, changed]) -
Предполагается, что count строк были изменены, начиная со строки start. Если changed указан, он определяет, помечены ли затронутые строки как изменённые (changed
=True) или неизменённые (changed=False).
-
window.touchwin() -
Предполагается, что всё окно было изменено для целей оптимизации отрисовки.
-
window.untouchwin() -
Помечает все строки в окне как неизменённые с момента последнего вызова
refresh().
-
window.vline(ch, n[, attr]) - window.vline(y, x, ch, n[, attr])
-
Отображает вертикальную линию, начиная с
(y, x), длиной n, состоящую из символа ch с атрибутами attr.
Константы
Модуль curses определяет следующие данные:
-
curses.ERR -
Некоторые функции curses, возвращающие целое число, такие как
getch(), возвращаютERRпри ошибке.
-
curses.OK -
Некоторые функции curses, возвращающие целое число, такие как
napms(), возвращаютOKпри успешном выполнении.
-
curses.version
-
curses.__version__ -
Объект типа bytes, представляющий текущую версию модуля.
-
curses.ncurses_version -
Кортеж именованных значений, содержащий три компонента версии библиотеки ncurses: major, minor и patch. Все значения являются целыми числами. К компонентам также можно обратиться по имени, поэтому
curses.ncurses_version[0]эквивалентноcurses.ncurses_version.majorи так далее.Доступность: если используется библиотека ncurses.
Добавлен в версии 3.8.
-
curses.COLORS -
Максимальное количество цветов, которое может поддерживать терминал. Определяется только после вызова
start_color().
-
curses.COLOR_PAIRS -
Максимальное количество пар цветов, которое может поддерживать терминал. Определяется только после вызова
start_color().
-
curses.COLS -
Ширина экрана, то есть количество столбцов. Определяется только после вызова
initscr(). Обновляется функциямиupdate_lines_cols(),resizeterm()иresize_term().
-
curses.LINES -
Высота экрана, то есть количество строк. Определяется только после вызова
initscr(). Обновляется функциямиupdate_lines_cols(),resizeterm()иresize_term().
Некоторые константы доступны для указания атрибутов ячейки символа. Доступные константы зависят от системы.
Атрибут | Значение |
|---|---|
| Режим альтернатного набора символов |
| Режим мигания |
| Режим полужирного шрифта |
| Режим затемнения |
| Режим невидимости или пустого поля |
| Режим курсива |
| Нормальный атрибут |
| Режим защиты |
| Режим инверсии цветов фона и переднего плана |
| Режим выделения |
| Режим подчеркивания |
| Горизонтальное выделение |
| Выделение слева |
| Выделение снизу |
| Выделение справа |
| Выделение сверху |
| Выделение по вертикали |
Добавлен в версии 3.7: A_ITALIC был добавлен.
Несколько констант доступны для извлечения соответствующих атрибутов, возвращаемых некоторыми методами.
Маска битов | Значение |
|---|---|
| Маска битов для извлечения атрибутов |
| Маска битов для извлечения символа |
| Маска битов для извлечения информации о паре цветов |
Ключи представлены целочисленными константами с именами, начинающимися с KEY_. Доступные символы клавиатуры зависят от системы.
Ключевая константа | Ключ |
|---|---|
| Минимальное значение ключа |
| Ключ разрыва (ненадёжный) |
| Стрелка вниз |
| Стрелка вверх |
| Стрелка влево |
| Стрелка вправо |
| Кнопка «Домой» (стрелка вверх + влево) |
| Backspace (ненадёжный) |
| Функциональные клавиши. Поддерживается до 64 функциональных клавиш. |
| Значение функциональной клавиши n |
| Удалить строку |
| Вставить строку |
| Удалить символ |
| Вставить символ или включить режим вставки |
| Выход из режима вставки символа |
| Очистить экран |
| Очистить до конца экрана |
| Очистить до конца строки |
| Прокрутить на 1 строку вперёд |
| Прокрутить на 1 строку назад (обратная) |
| Следующая страница |
| Предыдущая страница |
| Установить табуляцию |
| Очистить табуляцию |
| Очистить все табуляции |
| Ввод или отправка (ненадёжный) |
| Мягкий (частичный) сброс (ненадёжный) |
| Сброс или жёсткий сброс (ненадёжный) |
| Печать |
| Вниз домой или низ (нижняя левая) |
| В верхней левой части цифрового блока |
| В верхней правой части цифрового блока |
| Центр цифрового блока |
| В нижней левой части цифрового блока |
| В нижней правой части цифрового блока |
| Обратная табуляция |
| Начало (beg) |
| Отмена |
| Закрыть |
| Команда (cmd) |
| Копировать |
| Создать |
| Конец |
| Выход |
| Найти |
| Помощь |
| Отметить |
| Сообщение |
| Переместить |
| Следующий |
| Открыть |
| Параметры |
| Предыдущий |
| Повторить |
| Ссылка (ref) |
| Обновить |
| Заменить |
| Перезапустить |
| Продолжить |
| Сохранить |
| Сдвинутое начало (sbeg) |
| Сдвинутая отмена |
| Сдвинутая команда |
| Сдвинутая копия |
| Сдвинутое создание |
| Сдвинутое удаление символа |
| Сдвинутое удаление строки |
| Выбор |
| Конец со сдвигом |
| Очистка строки со сдвигом |
| Выход со сдвигом |
| Поиск со сдвигом |
| Справка со сдвигом |
| Домой со сдвигом |
| Ввод со сдвигом |
| Стрелка влево со сдвигом |
| Сообщение со сдвигом |
| Перемещение со сдвигом |
| Следующий со сдвигом |
| Параметры со сдвигом |
| Предыдущий со сдвигом |
| Печать со сдвигом |
| Повтор со сдвигом |
| Замена со сдвигом |
| Стрелка вправо со сдвигом |
| Возобновить со сдвигом |
| Сохранить со сдвигом |
| Приостановить со сдвигом |
| Отменить со сдвигом |
| Приостановить |
| Отменить |
| Произошло событие мыши |
| Событие изменения размера терминала |
| Максимальное значение ключа |
На VT100 и их программных эмуляциях, таких как эмуляторы X-терминалов, обычно доступны по крайней мере четыре функциональные клавиши (KEY_F1, KEY_F2, KEY_F3, KEY_F4), а клавиши со стрелками отображаются как KEY_UP, KEY_DOWN, KEY_LEFT и KEY_RIGHT в очевидном формате. Если у вашего компьютера есть клавиатура PC, вы можете ожидать клавиши со стрелками и двенадцать функциональных клавиш (старые клавиатуры PC могут иметь только десять функциональных клавиш); также стандартны следующие отображения на клавиатуре:
Надпись | Константа |
|---|---|
Вставка | KEY_IC |
Удалить | KEY_DC |
Домой | KEY_HOME |
Конец | KEY_END |
Страница вверх | KEY_PPAGE |
Страница вниз | KEY_NPAGE |
В следующей таблице перечислены символы из альтернативного набора символов. Они унаследованы от терминала VT100 и, как правило, доступны в программных эмуляциях, таких как X-терминалы. Если графического изображения нет, curses использует грубое печатное ASCII-приближение.
Примечание
Эти символы доступны только после вызова initscr().
Код ACS | Значение |
|---|---|
| запасное имя для правого верхнего угла |
| сплошной квадратный блок |
| доска из квадратов |
| запасное имя для горизонтальной линии |
| запасное имя для левого верхнего угла |
| запасное имя для верхней Т-образной формы |
| нижняя Т-образная форма |
| пуля |
| шашечная доска (пунктирная) |
| стрелка, указывающая вниз |
| символ градуса |
| ромб |
| больше или равно |
| горизонтальная линия |
| символ фонаря |
| стрелка влево |
| меньше или равно |
| нижний левый угол |
| нижний правый угол |
| левая Т-образная форма |
| не равно |
| буква пи |
| плюс-минус |
| большой знак плюс |
| стрелка вправо |
| правая Т-образная форма |
| сканирующая строка 1 |
| сканирующая строка 3 |
| сканирующая строка 7 |
| сканирующая строка 9 |
| запасное имя для нижнего правого угла |
| запасное имя для вертикальной линии |
| запасное имя для правой Т-образной формы |
| запасное имя для нижнего левого угла |
| запасное имя для нижней Т-образной формы |
| запасное имя для левой Т-образной формы |
| запасное имя для перекрёстка или большого знака плюс |
| фунт стерлингов |
| верхняя Т-образная форма |
| стрелка вверх |
| верхний левый угол |
| верхний правый угол |
| вертикальная линия |
В следующей таблице перечислены константы кнопок мыши, используемые функцией getmouse():
Константа кнопки мыши | Значение |
|---|---|
| Нажата кнопка мыши n |
| Отпущена кнопка мыши n |
| Кнопка мыши n нажата |
| Кнопка мыши n дважды нажата |
| Кнопка мыши n трижды нажата |
| Клавиша Shift была нажата во время изменения состояния кнопки |
| Клавиша Control была нажата во время изменения состояния кнопки |
| Клавиша Control была нажата во время изменения состояния кнопки |
Изменено в версии 3.10: Константы BUTTON5_* теперь доступны, если они предоставлены библиотекой curses.
В следующей таблице перечислены предопределённые цвета:
Константа | Цвет |
|---|---|
| Чёрный |
| Синий |
| Сине-зелёный (голубой) |
| Зелёный |
| Пурпурный (пурпурно-красный) |
| Красный |
| Белый |
| Жёлтый |
© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/library/curses.html