curses — Управление терминалом для символьных дисплеев
Исходный код: Lib/curses
Модуль curses предоставляет интерфейс к библиотеке curses — фактическому стандарту для переносимого расширенного управления терминалом.
Хотя curses чаще всего используется в среде Unix, существуют версии для Windows, DOS и, возможно, других систем. Этот модуль расширения разработан в соответствии с API ncurses — библиотеки curses с открытым исходным кодом, размещённой на Linux и вариантах Unix BSD.
Примечание
В документации под символом подразумевается значение, которое может быть задано в виде целого числа, односивольной строки Unicode или однобайтовой байтовой строки.
В документации под строкой символов подразумевается значение, которое может быть задано в виде строки Unicode или байтовой строки.
См. также
-
Modulecurses.ascii -
Утилиты для работы с символами ASCII независимо от региональных настроек.
-
Modulecurses.panel -
Расширение со стеком панелей, добавляющее глубину окнам curses.
-
Modulecurses.textpad -
Редактируемый текстовый виджет для curses с сочетаниями клавиш в стиле Emacs.
- Программирование на curses с Python
-
Учебные материалы по использованию curses с Python, подготовленные Эндрю Кучлингом и Эриком Реймондом.
Функции
Модуль 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() -
Включает режим 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 — это идентификатор, используемый для различения нескольких устройств, а 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) -
Используется для включения режима half-delay, в котором, как и в режиме cbreak, введённые пользователем символы немедленно становятся доступны программе. Однако, если в течение tenths десятых долей секунды ожидания ничего не введено, возбуждается исключение. Значение tenths должно находиться в диапазоне от
1до255. Чтобы выйти из режима half-delay, используйте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 с описанием текущего терминала. Максимальная длина подробного описания — 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) -
Создаёт и возвращает указатель на новую структуру данных pad с заданным количеством строк и столбцов. Возвращает pad в виде объекта окна.
Pad похож на окно, но не ограничен размером экрана и не обязательно связан с определённой его частью. Pad можно использовать, когда требуется большое окно, лишь часть которого одновременно отображается на экране. Автоматическое обновление pad (например, при прокрутке или отображении вводимых символов) не выполняется. Методы
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. Возвращает обычный режим «cooked» с построчной буферизацией.
-
curses.noecho() -
Выходит из режима echo. Отображение вводимых символов отключается.
-
curses.nonl() -
Выходит из режима перевода строки. Отключает преобразование возврата каретки в перевод строки при вводе и низкоуровневое преобразование перевода строки в последовательность перевод строки/возврат каретки при выводе (однако это не меняет поведение
addch('\n'), которая всегда выполняет на виртуальном экране эквивалент возврата каретки и перевода строки). Отключение преобразования иногда немного ускоряет вертикальное перемещение в curses; кроме того, программа сможет распознавать клавишу возврата каретки при вводе.
-
curses.noqiflush() -
При использовании процедуры
noqiflush()обычная очистка очередей ввода и вывода, связанных с символамиINTR,QUITиSUSP, выполняться не будет. Возможно, следует вызватьnoqiflush()в обработчике сигнала, если после его завершения вывод должен продолжаться так, словно прерывания не произошло.
-
curses.noraw() -
Выходит из режима raw. Возвращает обычный режим «cooked» с построчной буферизацией.
-
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() -
Включает режим 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()пытается изменить размеры всех окон. Однако из-за соглашения о вызовах для pad невозможно изменить их размеры без дополнительного взаимодействия с приложением.
-
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в виде объекта bytes, усечённое до 14 символов.
-
curses.tigetflag(capname) -
Возвращает значение логической возможности, соответствующей имени возможности terminfo capname, в виде целого числа. Возвращает значение
-1, если capname не является логической возможностью, или0, если возможность отменена или отсутствует в описании терминала.
-
curses.tigetnum(capname) -
Возвращает значение числовой возможности, соответствующей имени возможности terminfo capname, в виде целого числа. Возвращает значение
-2, если capname не является числовой возможностью, или-1, если возможность отменена или отсутствует в описании терминала.
-
curses.tigetstr(capname) -
Возвращает значение строковой возможности, соответствующей имени возможности terminfo capname, в виде объекта bytes. Возвращает
None, если capname не является «строковой возможностью» terminfo, возможность отменена или отсутствует в описании терминала.
-
curses.tparm(str[, ...]) -
Подставляет переданные параметры в объект bytes str, который должен быть параметризованной строкой, полученной из базы данных terminfo. Например,
tparm(tigetstr("cup"), 5, 3)может дать результатb'\033[6;4H'; точный результат зависит от типа терминала.
-
curses.typeahead(fd) -
Указывает, что для проверки опережающего ввода следует использовать файловый дескриптор fd. Если fd равен
-1, проверка опережающего ввода не выполняется.Библиотека curses выполняет «оптимизацию с прерыванием при вводе», периодически проверяя наличие опережающего ввода во время обновления экрана. Если обнаружен ввод с терминала, текущее обновление откладывается до следующего вызова refresh или doupdate, что позволяет быстрее реагировать на заранее набранные команды. Эта функция позволяет указать другой файловый дескриптор для проверки опережающего ввода.
-
curses.unctrl(ch) -
Возвращает объект bytes, представляющий символ ch в печатном виде. Управляющие символы представлены в виде каретки, за которой следует символ, например
b'^C'. Печатные символы остаются без изменений.
-
curses.ungetch(ch) -
Помещает ch обратно во входную очередь, чтобы следующий вызов
getch()вернул его.Примечание
До вызова
getch()можно поместить обратно только один символ ch.
-
curses.update_lines_cols() -
Обновляет переменные модуля
LINESиCOLS. Полезно для обнаружения изменения размера экрана вручную.Добавлено в версии 3.5.
-
curses.unget_wch(ch) -
Помещает ch обратно во входную очередь, чтобы следующий вызов
get_wch()вернул его.Примечание
До вызова
get_wch()можно поместить обратно только один символ ch.Добавлено в версии 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, может приводить к сбоям сегментации при изменении размеров окон. Эта проблема исправлена в ncurses-6.1-20190511. Если вы вынуждены использовать более раннюю версию ncurses, проблему можно избежать, не вызывая
addstr()со строкой str, содержащей символы перевода строки. Вместо этого вызывайте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(), но в качестве vertch используются оба параметра ls и rs, а в качестве horch — оба параметра ts и bs. Эта функция всегда использует символы углов по умолчанию.
-
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)
-
Сокращение от «derive window» («создать производное окно»).
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)
-
Прочитать у пользователя объект bytes с базовыми возможностями редактирования строки.
-
window.getyx() -
Вернуть кортеж
(y, x)с текущей позицией курсора относительно верхнего левого угла окна.
-
window.hline(ch, n) - window.hline(y, x, ch, n)
-
Вывести горизонтальную линию длиной n, состоящую из символа ch и начинающуюся в
(y, x).
-
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])
-
Вернуть объект bytes с символами, извлечёнными из окна, начиная с текущей позиции курсора или с позиции y, x, если она указана. Атрибуты символов удаляются. Если задано n,
instr()возвращает строку длиной не более n символов (без учёта завершающего NUL).
-
window.is_linetouched(line) -
Вернуть
True, если указанная строка была изменена после последнего вызоваrefresh(); в противном случае вернутьFalse. Если line не является допустимой строкой указанного окна, вызвать исключениеcurses.error.
-
window.is_wintouched() -
Вернуть
True, если указанное окно было изменено после последнего вызоваrefresh(); в противном случае вернутьFalse.
-
window.keypad(flag) -
Если flag равен
True, управляющие последовательности, генерируемые некоторыми клавишами (цифровой клавиатурой, функциональными клавишами), будут интерпретироваться модулемcurses. Если flag равенFalse, управляющие последовательности останутся без изменений во входном потоке.
-
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, для управляющих последовательностей не будет установлен тайм-аут.Если flag равен
False, через несколько миллисекунд управляющая последовательность не будет интерпретирована и останется во входном потоке без изменений.
-
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]) -
Немедленно обновить отображение (синхронизировать фактический экран с предыдущими методами рисования и удаления).
Шесть необязательных аргументов можно указать только в том случае, если окно является панелью, созданной с помощью
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() -
Отключить атрибут standout. На некоторых терминалах это также приводит к отключению всех атрибутов.
-
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])
-
Отобразить вертикальную линию длиной n, состоящую из символов ch с атрибутами attr и начинающуюся в позиции
(y, x).
Константы
Модуль 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_. Точный набор доступных клавиш зависит от системы.
Константа клавиши | Клавиша |
|---|---|
| Минимальное значение клавиши |
| Клавиша Break (ненадёжно) |
| Стрелка вниз |
| Стрелка вверх |
| Стрелка влево |
| Стрелка вправо |
| Клавиша Home (стрелка вверх и влево) |
| Backspace (ненадёжно) |
| Функциональные клавиши. Поддерживается до 64 функциональных клавиш. |
| Значение функциональной клавиши n |
| Удалить строку |
| Вставить строку |
| Удалить символ |
| Вставить символ или включить режим вставки |
| Выйти из режима вставки символов |
| Очистить экран |
| Очистить экран до конца |
| Очистить строку до конца |
| Прокрутить на одну строку вперёд |
| Прокрутить на одну строку назад (в обратном направлении) |
| Следующая страница |
| Предыдущая страница |
| Установить позицию табуляции |
| Удалить позицию табуляции |
| Удалить все позиции табуляции |
| Ввод или отправка (ненадёжно) |
| Мягкий (частичный) сброс (ненадёжно) |
| Сброс или полный сброс (ненадёжно) |
| Печать |
| Вниз в начало или к нижнему краю (влево вниз) |
| Верхний левый угол цифровой клавиатуры |
| Верхний правый угол цифровой клавиатуры |
| Центр цифровой клавиатуры |
| Нижний левый угол цифровой клавиатуры |
| Нижний правый угол цифровой клавиатуры |
| Обратная табуляция |
| Начало (beginning) |
| Отмена |
| Закрыть |
| Команда (command) |
| Копировать |
| Создать |
| Конец |
| Выход |
| Найти |
| Справка |
| Пометить |
| Сообщение |
| Переместить |
| Далее |
| Открыть |
| Параметры |
| Предыдущий (previous) |
| Повторить |
| Ссылка (reference) |
| Обновить |
| Заменить |
| Перезапустить |
| Возобновить |
| Сохранить |
| Начало с Shift (beginning) |
| Отмена с Shift |
| Команда с Shift |
| Копирование с Shift |
| Создание с Shift |
| Удаление символа с Shift |
| Удаление строки с Shift |
| Выбрать |
| Конец с Shift |
| Очистка строки с Shift |
| Выход с Shift |
| Поиск с Shift |
| Справка с Shift |
| Home с Shift |
| Ввод с Shift |
| Стрелка влево с Shift |
| Сообщение с Shift |
| Перемещение с Shift |
| Далее с Shift |
| Параметры с Shift |
| Предыдущий с Shift |
| Печать с Shift |
| Повтор с Shift |
| Замена с Shift |
| Стрелка вправо с Shift |
| Возобновление с Shift |
| Сохранение с Shift |
| Приостановка с Shift |
| Отмена действия с Shift |
| Приостановить |
| Отменить действие |
| Произошло событие мыши |
| Событие изменения размера терминала |
| Максимальное значение клавиши |
На терминалах VT100 и их программных эмуляциях, таких как эмуляторы терминала X, обычно доступны как минимум четыре функциональные клавиши (KEY_F1, KEY_F2, KEY_F3, KEY_F4), а клавиши со стрелками стандартным образом сопоставлены с KEY_UP, KEY_DOWN, KEY_LEFT и KEY_RIGHT. Если на вашем компьютере есть клавиатура ПК, можно рассчитывать на наличие клавиш со стрелками и двенадцати функциональных клавиш (на старых клавиатурах ПК может быть только десять функциональных клавиш); кроме того, стандартны следующие соответствия клавиш цифровой клавиатуры:
Клавиша | Константа |
|---|---|
Insert | KEY_IC |
Delete | KEY_DC |
Home | KEY_HOME |
End | KEY_END |
Page Up | KEY_PPAGE |
Page Down | 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.12/library/curses.html