curses
— Работа с терминалами для отображения символьных ячеек¶
Модуль curses
предоставляет интерфейс к библиотеке curses, стандарту де-факто для переносимой расширенной обработки терминалов.
Хотя curses наиболее широко используется в среде Unix, существуют версии для Windows, DOS и, возможно, других систем. Этот модуль расширения разработан для соответствия API ncurses, библиотеки curses с открытым исходным кодом, размещенной в Linux и BSD вариантах Unix.
Примечание
Всякий раз, когда в документации упоминается символ, он может быть указан как целое число, односимвольная строка Unicode или однобайтовая байтовая строка.
Когда в документации упоминается символьная строка, она может быть указана как строка Unicode или байтовая строка.
Примечание
Начиная с версии 5.4, библиотека ncurses решает, как интерпретировать не-ASCII данные, используя функцию nl_langinfo
. Это означает, что вы должны вызвать locale.setlocale()
в приложении и закодировать строки Unicode, используя одну из доступных кодировок системы. В данном примере используется кодировка системы по умолчанию:
import locale
locale.setlocale(locale.LC_ALL, '')
code = locale.getpreferredencoding()
Затем используйте code в качестве кодировки для вызовов str.encode()
.
См.также
- Модуль
curses.ascii
Утилиты для работы с символами ASCII, независимо от настроек вашей локали.
- Модуль
curses.panel
Расширение стека панелей, добавляющее глубину окнам curses.
- Модуль
curses.textpad
Редактируемый текстовый виджет для curses, поддерживающий Emacs-подобные привязки.
- Программирование Curses с помощью Python
Учебный материал по использованию curses с Python, написанный Эндрю Кучлингом и Эриком Реймондом.
Каталог Tools/demo/ в исходном дистрибутиве Python содержит несколько примеров программ, использующих привязки curses, предоставляемые этим модулем.
Функции¶
Модуль 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. (Его аналогом является режим «shell», когда программа не использует curses.) Последующие вызовы
reset_prog_mode()
восстановят этот режим.
-
curses.
def_shell_mode
()¶ Сохраните текущий режим терминала как режим «shell», режим, когда запущенная программа не использует curses. (Его аналогом является режим «program», когда программа использует возможности curses). Последующие вызовы
reset_shell_mode()
восстановят этот режим.
-
curses.
delay_output
(ms)¶ Вставьте ms миллисекундную паузу в вывод.
-
curses.
doupdate
()¶ Обновление физического экрана. Библиотека curses хранит две структуры данных, одна из которых представляет текущее содержимое физического экрана, а виртуальный экран - желаемое следующее состояние. Команда
doupdate()
обновляет физический экран, чтобы он соответствовал виртуальному.Виртуальный экран может быть обновлен вызовом
noutrefresh()
после выполнения операций записи, таких какaddstr()
, в окне. Обычный вызовrefresh()
- это простоnoutrefresh()
, за которым следуетdoupdate()
; если вам нужно обновить несколько окон, вы можете ускорить работу и, возможно, уменьшить мерцание экрана, выполнив вызовnoutrefresh()
для всех окон, за которым следует одинdoupdate()
.
-
curses.
echo
()¶ Войдите в режим эхо. В режиме эхо каждый введенный символ отражается на экране по мере его ввода.
-
curses.
endwin
()¶ Деинициализируйте библиотеку и верните терминал в нормальное состояние.
-
curses.
erasechar
()¶ Возвращает текущий символ стирания пользователя в виде однобайтового байтового объекта. В операционных системах Unix это свойство управляющей tty программы curses, и не устанавливается самой библиотекой curses.
-
curses.
filter
()¶ Процедура
filter()
, если она используется, должна быть вызвана до вызоваinitscr()
. В результате во время этих вызововLINES
устанавливается значение1
; возможностиclear
,cup
,cud
,cud1
,cuu1
,cuu
,vpa
отключены; а строкаhome
устанавливается в значениеcr
. В результате курсор ограничивается текущей строкой, как и обновление экрана. Это может быть использовано для редактирования строки по символам за раз, не затрагивая остальной части экрана.
-
curses.
flash
()¶ Мигание экрана. То есть переключить его на обратное видео, а затем через короткий промежуток времени переключить обратно. Некоторые люди предпочитают такой «видимый звонок» звуковому сигналу внимания, производимому
beep()
.
-
curses.
flushinp
()¶ Промыть все входные буферы. При этом отбрасывается любой заголовок, который был набран пользователем и еще не был обработан программой.
-
curses.
getmouse
()¶ После того как
getch()
возвращаетKEY_MOUSE
, сигнализируя о событии мыши, этот метод должен быть вызван для получения поставленного в очередь события мыши, представленного в виде 5 кортежа(id, x, y, z, bstate)
. id - это значение ID, используемое для различения нескольких устройств, а x, y, z - это координаты события. (z в настоящее время не используется.) bstate - целочисленное значение, биты которого будут установлены для указания типа события, и будет побитовым OR одной или более из следующих констант, где 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)¶ Считывание данных, связанных с окном, сохраненных в файле предыдущим вызовом
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 должно быть числом между
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
()¶ Инициализировать библиотеку. Возвращает объект window, который представляет весь экран.
Примечание
Если при открытии терминала произошла ошибка, библиотека curses может привести к выходу интерпретатора.
-
curses.
is_term_resized
(nlines, ncols)¶ Возвращает
True
, еслиresize_term()
изменит структуру окна,False
в противном случае.
-
curses.
isendwin
()¶ Возвращает
True
, если был вызванendwin()
(то есть библиотека curses была деинициализирована).
-
curses.
keyname
(k)¶ Возвращает имя ключа с номером k в виде объекта bytes. Имя клавиши, генерирующей печатный символ ASCII, - это символ клавиши. Имя комбинации управляющих клавиш - двухбайтовый байтовый объект, состоящий из каретки (
b'^'
), за которой следует соответствующий печатаемый символ ASCII. Имя комбинации клавиш alt (128–255) - это байтовый объект, состоящий из префиксаb'M-'
, за которым следует имя соответствующего символа ASCII.
-
curses.
killchar
()¶ Возвращает текущий символ завершения строки пользователя в виде однобайтового байтового объекта. В операционных системах Unix это свойство управляющей tty программы curses, и не устанавливается самой библиотекой curses.
-
curses.
longname
()¶ Возвращает объект bytes, содержащий поле terminfo long name, описывающее текущий терминал. Максимальная длина вербозного описания составляет 128 символов. Оно определяется только после вызова команды
initscr()
.
-
curses.
meta
(flag)¶ Если flag равен
True
, разрешить ввод 8-битных символов. Если флаг равенFalse
, разрешается ввод только 7-битных символов.
-
curses.
mouseinterval
(interval)¶ Установите максимальное время в миллисекундах, которое может пройти между событиями нажатия и отпускания, чтобы они были распознаны как щелчок, и верните предыдущее значение интервала. Значение по умолчанию - 200 мс, или одна пятая секунды.
-
curses.
mousemask
(mousemask)¶ Устанавливает события мыши, о которых нужно сообщать, и возвращает кортеж
(availmask, oldmask)
. availmask указывает, какие из указанных событий мыши могут быть сообщены; при полном отказе возвращается0
. oldmask - предыдущее значение маски событий мыши данного окна. Если эта функция никогда не вызывается, ни одно событие мыши не будет сообщено.
-
curses.
napms
(ms)¶ Спать в течение ms миллисекунд.
-
curses.
newpad
(nlines, ncols)¶ Создать и вернуть указатель на новую структуру данных pad с заданным количеством строк и столбцов. Возвращает блокнот как объект окна.
Пад похож на окно, за исключением того, что он не ограничен размером экрана и не обязательно связан с определенной частью экрана. Пады можно использовать, когда требуется большое окно, но только часть окна будет находиться на экране в одно время. Автоматическое обновление пэдов (например, при прокрутке или эхо ввода) не происходит. Методы
refresh()
иnoutrefresh()
для отображения пэда требуют 6 аргументов для указания части пэда, которая должна быть отображена, и места на экране, которое будет использоваться для отображения. Аргументами являются pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol; аргументы p относятся к левому верхнему углу отображаемой области пэда, а аргументы s определяют обрезающее поле на экране, в пределах которого будет отображаться область пэда.
-
curses.
newwin
(nlines, ncols)¶ -
curses.
newwin
(nlines, ncols, begin_y, begin_x) Возвращает новый window, левый верхний угол которого находится в
(begin_y, begin_x)
, а высота/ширина равна nlines/ncols.По умолчанию окно будет расширяться от указанной позиции до правого нижнего угла экрана.
-
curses.
nl
()¶ Войдите в режим новой строки. Этот режим преобразует клавишу возврата в новую строку на вводе и преобразует новую строку в возврат и перевод строки на выводе. Изначально режим новой строки включен.
-
curses.
nocbreak
()¶ Выйдите из режима cbreak. Вернитесь в обычный «приготовленный» режим с буферизацией строк.
-
curses.
noecho
()¶ Выйти из режима эхо. Эхо символов ввода отключено.
-
curses.
nonl
()¶ Оставить режим новой строки. Отключите перевод возврата в новую строку на входе и отключите низкоуровневый перевод новой строки в новую строку/возврат на выходе (но это не изменит поведение
addch('\n')
, который всегда делает эквивалент возврата и перевода строки на виртуальном экране). При отключенном переводе curses иногда может немного ускорить вертикальное движение; кроме того, он сможет обнаружить клавишу return на вводе.
-
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.
reset_prog_mode
()¶ Верните терминал в режим «программа», сохраненный ранее командой
def_prog_mode()
.
-
curses.
reset_shell_mode
()¶ Восстановите терминал в режим «shell», сохраненный ранее командой
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)¶ Устанавливает количество миллисекунд ожидания после чтения управляющего символа, чтобы отличить отдельный управляющий символ, введенный с клавиатуры, от управляющих последовательностей, посылаемых курсором и функциональными клавишами.
Добавлено в версии 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)¶ Возвращает значение булевой возможности, соответствующей имени capname в виде целого числа. Возвращает значение
-1
, если capname не является булевой способностью, или0
, если она отменена или отсутствует в описании терминала.
-
curses.
tigetnum
(capname)¶ Возвращает значение числовой возможности, соответствующей имени capname в виде целого числа. Возвращает значение
-2
, если capname не является числовой возможностью, или-1
, если она отменена или отсутствует в описании терминала.
-
curses.
tigetstr
(capname)¶ Возвращает значение строковой возможности, соответствующей имени capname терминальной возможности terminfo, в виде объекта bytes. Вернуть
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 выполняет «оптимизацию перевода строки», периодически проверяя наличие typeahead во время обновления экрана. Если он найден и поступает с tty, текущее обновление откладывается до повторного вызова refresh или doupdate, что позволяет быстрее реагировать на команды, набранные заранее. Эта функция позволяет указать другой дескриптор файла для проверки typeahead.
-
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, выключает echo, включает клавиатуру терминала и инициализирует цвета, если терминал поддерживает цвет. При выходе (обычном или по исключению) он восстанавливает режим cooked, включает echo и отключает клавиатуру терминала.
Оконные объекты¶
Объекты окон, возвращаемые с помощью 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
. Попытка записи в нижний правый угол окна, подокна или пэда вызовет исключение после печати строки.bug in ncurses, бэкенд для этого модуля Python, может вызвать SegFaults при изменении размеров окон. Это исправлено в ncurses-6.1-20190511. Если у вас стоит более ранняя версия ncurses, вы можете избежать этого, если не будете вызывать
addstr()
с str, содержащим встроенные новые строки. Вместо этого вызовитеaddstr()
отдельно для каждой строки.
-
window.
attroff
(attr)¶ Удалить атрибут attr из набора «background», применяемого ко всем записям в текущее окно.
-
window.
attron
(attr)¶ Добавить атрибут attr из набора «background», применяемый ко всем записям в текущее окно.
-
window.
attrset
(attr)¶ Установите набор атрибутов «фона» в attr. Изначально этот набор
0
(атрибуты отсутствуют).
-
window.
bkgd
(ch[, attr])¶ Установите свойство фона окна на символ ch, с атрибутами attr. Затем это изменение применяется к каждой позиции символа в этом окне:
Атрибут каждого символа в окне изменяется на новый атрибут фона.
Там, где появляется прежний фоновый персонаж, он меняется на новый фоновый персонаж.
-
window.
bkgdset
(ch[, attr])¶ Установите фон окна. Фон окна состоит из символа и любой комбинации атрибутов. Атрибутивная часть фона объединяется (OR’ed) со всеми непустыми символами, которые записаны в окне. И символьная, и атрибутная части фона объединяются с пустыми символами. Фон становится свойством символа и перемещается вместе с ним при любых операциях прокрутки и вставки/удаления строки/символа.
-
window.
border
([ls[, rs[, ts[, bs[, tl[, tr[, bl[, br]]]]]]]])¶ Нарисовать границу по краям окна. Каждый параметр определяет символ, который следует использовать для определенной части границы; более подробную информацию см. в таблице ниже.
Примечание
Значение
0
для любого параметра приведет к тому, что для этого параметра будет использоваться символ по умолчанию. Параметры с ключевыми словами не могут быть использованы. Значения по умолчанию перечислены в этой таблице:Параметр
Описание
Значение по умолчанию
ls
Левая сторона
ACS_VLINE
rs
Правая сторона
ACS_VLINE
ts
Топ
ACS_HLINE
bs
Дно
ACS_HLINE
tl
Верхний левый угол
ACS_ULCORNER
tr
Верхний правый угол
ACS_URCORNER
bl
Левый нижний угол
ACS_LLCORNER
br
Правый нижний угол
ACS_LRCORNER
-
window.
box
([vertch, horch])¶ Аналогична
border()
, но оба ls и rs являются vertch, а оба ts и bs являются horch. Угловые символы по умолчанию всегда используются этой функцией.
-
window.
chgat
(attr)¶ -
window.
chgat
(num, attr) -
window.
chgat
(y, x, attr) -
window.
chgat
(y, x, num, attr) Установить атрибуты num символов в текущей позиции курсора или в позиции
(y, x)
, если она задана. Если num не задано или равно-1
, атрибут будет установлен для всех символов до конца строки. Эта функция перемещает курсор в позицию(y, x)
, если она задана. Измененная строка будет тронута с помощью методаtouchline()
, так что ее содержимое будет отображено заново при следующем обновлении окна.
-
window.
clear
()¶ Подобно
erase()
, но также вызывает перекрашивание всего окна при следующем вызовеrefresh()
.
-
window.
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.getpreferredencoding()
).Добавлено в версии 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)¶ Если флаг равен
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)¶ Если флаг равен
True
, то управляющие последовательности, генерируемые некоторыми клавишами (клавиатура, функциональные клавиши), будут интерпретироваться какcurses
. Если флаг равенFalse
, то управляющие последовательности будут оставлены в потоке ввода как есть.
-
window.
leaveok
(flag)¶ Если флаг равен
True
, курсор оставляется там, где он находится при обновлении, вместо того, чтобы находиться в «позиции курсора». Это уменьшает перемещение курсора там, где это возможно. Если возможно, курсор будет сделан невидимым.Если флаг равен
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.
notimeout
(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])¶ Немедленное обновление дисплея (синхронизация реального экрана с предыдущими методами рисования/удаления).
6 дополнительных аргументов могут быть указаны только в том случае, если окно является пэдом, созданным с помощью
newpad()
. Дополнительные параметры необходимы для указания того, какая часть пэда и экрана задействована. pminrow и pmincol задают верхний левый угол прямоугольника, который будет отображаться в пэде. sminrow, smincol, smaxrow и smaxcol указывают края прямоугольника, который будет отображаться на экране. Нижний правый угол прямоугольника, который будет отображаться в блокноте, вычисляется по координатам экрана, так как прямоугольники должны быть одинакового размера. Оба прямоугольника должны полностью содержаться в соответствующих структурах. Отрицательные значения pminrow, pmincol, sminrow или smincol рассматриваются как нулевые.
-
window.
resize
(nlines, ncols)¶ Перераспределение памяти для окна curses для приведения его размеров к указанным значениям. Если один из размеров больше текущих значений, данные окна заполняются пустым пространством, в которое сливается текущее фоновое отображение (заданное командой
bkgdset()
).
-
window.
scroll
([lines=1])¶ Прокрутите экран или область прокрутки вверх на строк строк.
-
window.
scrollok
(flag)¶ Управляет тем, что происходит, когда курсор окна перемещается за край окна или области прокрутки, либо в результате действия новой строки на нижней строке, либо при вводе последнего символа последней строки. Если флаг равен
False
, курсор остается на нижней строке. Если флаг равенTrue
, окно прокручивается на одну строку вверх. Обратите внимание, что для получения физического эффекта прокрутки на терминале необходимо также вызватьidlok()
.
-
window.
setscrreg
(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])¶ Представьте, что количество строк было изменено, начиная со строки start. Если указано changed, это указывает, будут ли затронутые строки помечены как измененные (changed
=True
) или как неизмененные (changed=False
).
-
window.
touchwin
()¶ Представьте, что все окно было изменено, в целях оптимизации рисования.
-
window.
untouchwin
()¶ Пометить все строки в окне как неизменные с момента последнего вызова команды
refresh()
.
-
window.
vline
(ch, n)¶ -
window.
vline
(y, x, ch, n) Вывести вертикальную линию, начинающуюся в точке
(y, x)
, длиной n, состоящую из символа ch.
Константы¶
Модуль curses
определяет следующие члены данных:
-
curses.
ERR
¶ Некоторые программы curses, возвращающие целое число, такие как
getch()
, при неудаче возвращаютERR
.
-
curses.
OK
¶ Некоторые программы curses, возвращающие целое число, такие как
napms()
, при успехе возвращаютOK
.
-
curses.
version
¶ Байтовый объект, представляющий текущую версию модуля. Также доступен как
__version__
.
-
curses.
ncurses_version
¶ Именованный кортеж, содержащий три компонента версии библиотеки ncurses: major, minor и patch. Все значения являются целыми числами. К компонентам также можно обращаться по имени, поэтому
curses.ncurses_version[0]
эквивалентноcurses.ncurses_version.major
и так далее.Доступность: если используется библиотека ncurses.
Добавлено в версии 3.8.
Для задания атрибутов символьных ячеек доступны некоторые константы. Точные константы зависят от системы.
Атрибут |
Значение |
---|---|
|
Режим альтернативного набора символов |
|
Режим мигания |
|
Жирный режим |
|
Режим затемнения |
|
Невидимый или пустой режим |
|
Режим курсива |
|
Нормальный атрибут |
|
Защищенный режим |
|
Изменить цвета фона и переднего плана |
|
Режим выделения |
|
Режим подчеркивания |
|
Горизонтальное выделение |
|
Левый блик |
|
Низкое освещение |
|
Правый блик |
|
Главная изюминка |
|
Вертикальное выделение |
|
Битовая маска для извлечения символа |
Добавлено в версии 3.7: A_ITALIC
был добавлен.
Для извлечения соответствующих атрибутов, возвращаемых некоторыми методами, доступны несколько констант.
Битовая маска |
Значение |
---|---|
|
Битовая маска для извлечения атрибутов |
|
Битовая маска для извлечения символа |
|
Битовая маска для извлечения информации о поле цветовой пары |
Клавиши обозначаются целочисленными константами с именами, начинающимися с KEY_
. Точный набор клавиш зависит от системы.
Ключевая константа |
Ключ |
---|---|
|
Минимальное значение ключа |
|
Сломанный ключ (ненадежный) |
|
Стрелка вниз |
|
Стрелка вверх |
|
Левая стрелка |
|
Стрелка вправо |
|
Клавиша Home (стрелка вверх+влево) |
|
Backspace (ненадежно) |
|
Функциональные клавиши. Поддерживается до 64 функциональных клавиш. |
|
Значение функциональной клавиши n |
|
Удалить строку |
|
Вставить строку |
|
Удалить символ |
|
Вставить символ или войти в режим вставки |
|
Выход из режима вставки символов |
|
Чистый экран |
|
Очистить до конца экрана |
|
Очистить до конца строки |
|
Прокрутите 1 строку вперед |
|
Прокрутка на 1 строку назад (реверс) |
|
Следующая страница |
|
Предыдущая страница |
|
Установить вкладку |
|
Очистить вкладку |
|
Очистить все вкладки |
|
Ввод или отправка (ненадежно) |
|
Мягкий (частичный) сброс (ненадежный) |
|
Сброс или жесткий сброс (ненадежно) |
|
Печать |
|
Домой вниз или вниз (нижний левый угол) |
|
Верхняя левая часть клавиатуры |
|
Верхняя правая часть клавиатуры |
|
Центр клавиатуры |
|
Нижняя левая часть клавиатуры |
|
Правая нижняя часть клавиатуры |
|
Задняя вкладка |
|
Beg (начало) |
|
Отмена |
|
Закрыть |
|
Cmd (команда) |
|
Копировать |
|
Создать |
|
Конец |
|
Выход |
|
Найти |
|
Помощь |
|
Марк |
|
Сообщение |
|
Переместить |
|
Следующий |
|
Открыть |
|
Опции |
|
Prev (предыдущий) |
|
Redo |
|
Ref (ссылка) |
|
Обновить |
|
Заменить |
|
Перезапустить |
|
Резюме |
|
Сохранить |
|
Shifted Beg (начало) |
|
Сдвинутая отмена |
|
Сдвинутое командование |
|
Сдвинутая копия |
|
Shifted Create |
|
Shifted Delete char |
|
Сдвинутая линия удаления |
|
Выберите |
|
Сдвинутый конец |
|
Сдвинутая четкая линия |
|
Сдвинутый выход |
|
Сдвинутая находка |
|
Сдвинутая помощь |
|
Сдвинутый дом |
|
Сдвинутый вход |
|
Сдвинутая стрелка влево |
|
Перемещенное сообщение |
|
Сдвинутое движение |
|
Сдвинутые Далее |
|
Сдвинутые варианты |
|
Shifted Prev |
|
Сдвинутый принт |
|
Сдвинутая переделка |
|
Сдвинутая замена |
|
Сдвинутая стрелка вправо |
|
Сдвинутое резюме |
|
Сдвинутая экономия |
|
Сдвинутая приостановка |
|
Сдвинутая отмена |
|
Приостановить |
|
Отменить |
|
Произошло событие мыши |
|
Событие изменения размера терминала |
|
Максимальное значение ключа |
На 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 |
КЛЮЧЕВОЙ_ПЕЙДЖ |
Page Down |
КЛЮЧЕВОЙ_ПЕЙДЖ |
В следующей таблице перечислены символы из альтернативного набора символов. Они унаследованы от терминала VT100 и обычно доступны в программных эмуляторах, таких как X-терминалы. Если графики нет, curses использует грубое приближение к ASCII.
Примечание
Они доступны только после вызова initscr()
.
Код АСУ |
Значение |
---|---|
|
альтернативное название для правого верхнего угла |
|
массивный квадратный блок |
|
доска квадратов |
|
альтернативное название горизонтальной линии |
|
альтернативное название для левого верхнего угла |
|
альтернативное название для верхнего тройника |
|
нижняя майка |
|
пуля |
|
шашечная доска (стиппл) |
|
стрелка, направленная вниз |
|
знак степени |
|
алмаз |
|
больше-или-равно |
|
горизонтальная линия |
|
символ фонаря |
|
стрелка влево |
|
меньше-или-равно |
|
левый нижний угол |
|
правый нижний угол |
|
левая футболка |
|
знак неравенства |
|
буква пи |
|
знак плюс или минус |
|
большой знак плюс |
|
стрелка вправо |
|
правильная футболка |
|
строка сканирования 1 |
|
линия сканирования 3 |
|
строка сканирования 7 |
|
строка сканирования 9 |
|
альтернативное название для правого нижнего угла |
|
альтернативное название для вертикальной линии |
|
альтернативное название правого тройника |
|
альтернативное название для левого нижнего угла |
|
альтернативное название для нижнего тройника |
|
альтернативное название для левого тройника |
|
альтернативное название кроссовер или большой плюс |
|
фунт стерлингов |
|
верхняя футболка |
|
стрелка вверх |
|
левый верхний угол |
|
правый верхний угол |
|
вертикальная линия |
В следующей таблице перечислены предопределенные цвета:
Постоянная |
Цвет |
---|---|
|
Черный |
|
Голубой |
|
Циан (светлый зеленовато-голубой) |
|
Зеленый |
|
Пурпурный (пурпурно-красный) |
|
Красный |
|
Белый |
|
Желтый |
curses.textpad
— Виджет ввода текста для программ curses¶
Модуль curses.textpad
предоставляет класс Textbox
, который обрабатывает элементарное редактирование текста в окне curses, поддерживая набор привязок клавиш, напоминающий таковые в Emacs (таким образом, также в Netscape Navigator, BBedit 6.x, FrameMaker и многих других программах). Модуль также предоставляет функцию рисования прямоугольников, полезную для обрамления текстовых полей или для других целей.
Модуль curses.textpad
определяет следующую функцию:
-
curses.textpad.
rectangle
(win, uly, ulx, lry, lrx)¶ Нарисовать прямоугольник. Первым аргументом должен быть объект окна; остальные аргументы являются координатами относительно этого окна. Второй и третий аргументы - координаты y и x левого верхнего угла рисуемого прямоугольника; четвертый и пятый аргументы - координаты y и x правого нижнего угла. Прямоугольник будет нарисован с использованием символов VT100/IBM PC forms на терминалах, позволяющих это сделать (включая xterm и большинство других программных эмуляторов терминалов). В противном случае он будет нарисован с помощью ASCII тире, вертикальных полос и знаков плюс.
Объекты текстового поля¶
Вы можете создать объект Textbox
следующим образом:
-
class
curses.textpad.
Textbox
(win)¶ Возвращает объект виджета textbox. Аргумент win должен быть объектом curses window, в котором будет содержаться текстовое поле. Курсор редактирования текстового поля первоначально располагается в левом верхнем углу содержащего окна с координатами
(0, 0)
. Флаг экземпляраstripspaces
изначально включен.Объекты
Textbox
имеют следующие методы:-
edit
([validator])¶ Это точка входа, которую вы обычно используете. Она принимает нажатия клавиш редактирования, пока не будет введено одно из завершающих нажатий. Если указан validator, то это должна быть функция. Она будет вызываться для каждого введенного нажатия клавиши с нажатием клавиши в качестве параметра; диспетчеризация команды выполняется по результату. Этот метод возвращает содержимое окна в виде строки; на то, будут ли включены пробелы в окне, влияет атрибут
stripspaces
.
-
do_command
(ch)¶ Обработка одного командного нажатия клавиши. Ниже перечислены поддерживаемые специальные нажатия клавиш:
Нажатие клавиш
Действие
Control-A
Перейдите к левому краю окна.
Control-B
Курсор влево, возврат к предыдущей строке, если это необходимо.
Control-D
Удаление символа под курсором.
Control-E
Перейдите к правому краю (пробелы выключены) или к концу строки (пробелы включены).
Control-F
Курсор вправо, при необходимости переходит на следующую строку.
Control-G
Завершение работы с возвратом содержимого окна.
Control-H
Удалить символ назад.
Control-J
Завершить, если окно имеет размер 1 строка, в противном случае вставить новую строку.
Control-K
Если строка пустая, удалите ее, иначе очистите до конца строки.
Control-L
Обновить экран.
Control-N
Курсор вниз; перемещение на одну строку вниз.
Control-O
Вставка пустой строки в месте расположения курсора.
Control-P
Курсор вверх; перемещение на одну строку вверх.
Операции перемещения ничего не делают, если курсор находится на краю, где перемещение невозможно. По возможности поддерживаются следующие синонимы:
Постоянная
Нажатие клавиш
KEY_LEFT
Control-B
KEY_RIGHT
Control-F
KEY_UP
Control-P
KEY_DOWN
Control-N
KEY_BACKSPACE
Control-h
Все остальные нажатия клавиш рассматриваются как команда вставить заданный символ и перейти вправо (с переворачиванием строки).
-
gather
()¶ Возвращает содержимое окна в виде строки; на то, будут ли включены пробелы в окне, влияет член
stripspaces
.
-
stripspaces
¶ Этот атрибут представляет собой флаг, который управляет интерпретацией пробелов в окне. Когда он включен, пробелы в конце каждой строки игнорируются; любое движение курсора, при котором курсор окажется на пробеле, переходит в конец строки, а пробелы в конце строки удаляются при сборе содержимого окна.
-