curses
— Отрисовка псевдографического интерфейса в терминале¶
Модуль curses
предоставляет интерфейс с библиотекой curses, которая является
фактически стандартом для обработки переносимых продвинутых терминалов.
В то время как curses наиболее широко используются в среде Unix, также доступны версии для Windows, DOS и возможно других систем. Модуль расширения реализован в соответствии с API ncurses, открытой библиотеке curses с исходным кодом, размещенной на Linux и BSD-вариантах Unix.
Примечание
Каждый раз, когда документация упоминает символ, он может быть определен как целое число, односимвольная Юникод строка или однобайтовый байтовая строка.
Каждый раз, когда документация упоминает строку символов, она может быть определена как Юникод строка или байтовая строка.
Примечание
Начиная с версии 5.4 библиотека ncurses решает, как интерпретировать не
ASCII данные с помощью функции nl_langinfo
. Это означает, что вы должны вызвать
locale.setlocale()
в приложении и закодировать Юникод строки, используя одну из
доступных кодировок системы. В этом примере используется кодировка системы по
умолчанию:
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 от Andrew Kuchling и Eric Raymond.
Каталог 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 (иногда называемом «rare» режимом) выключается обычная буферизация tty-линии, и символы доступны для поочередного чтения. Однако, в отличие от raw режима, специальные символы (прерывание, выход, приостановка и управление потоком) сохраняют своё влияние на драйвер tty и вызывающую программу. Вызов сначала
raw()
затемcbreak()
покидает терминал в режиме cbreak.
-
curses.
color_content
(color_number)¶ Возвращает интенсивность красного, зеленого и синего (RGB) компонентов в цвете color_number, который должен находиться в диапазоне от
0
доCOLORS - 1
. Верните кортеж из трех элементов, содержащий значения 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
()¶ Сохранить текущий терминальный режим как «shell», когда запущенная программа не использует curses. (Ее коллега - режим «программы», когда программа использует возможности curses.) Последующие вызовы к
reset_shell_mode()
восстановят этот режим.
-
curses.
delay_output
(ms)¶ Вставить ms милисекундный перерыв вывода.
-
curses.
doupdate
()¶ Обновить физический экран. Библиотека curses держит две структуры данных: первая представляет текущее физическое содержания экрана, вторая - виртуальный экран, представляющий желаемое следующее состояние. Основание
doupdate()
обновляет физический экран, чтобы соответствовать виртуальному экрану.Виртуальный экран может обновляться вызовом
noutrefresh()
после выполнения операций записи в окне, таких какaddstr()
. Нормальный вызовrefresh()
- простоnoutrefresh()
, сопровождаемыйdoupdate()
; если необходимо обновить несколько окон, можно ускорить производительность и, возможно, уменьшить мерцание экрана, выполнив вызовыnoutrefresh()
во всех окнах, за которыми последует одинdoupdate()
.
-
curses.
echo
()¶ Переход в эхо-режим. В режиме эха каждый введенный символ отражается на экран.
-
curses.
endwin
()¶ Деинициализировать библиотеку и вернуть терминал в нормальное состояние.
-
curses.
erasechar
()¶ Возвращает текущий пользовательский символ удаления как однобайтовый байтовый объект. В операционных системах Unix это свойство управляющей tty программы curses, и не устанавливается самой библиотекой curses.
-
curses.
filter
()¶ Если используется процедура
filter()
, то её нужно вызывать, прежде чем вызываетсяinitscr()
. Эффект заключается в том, что во время этих вызововLINES
устанавливается в1
; возможностиclear
,cup
,cud
,cud1
,cuu1
,cuu
,vpa
отключаются; иhome
строка устанавливается в значениеcr
. Эффект заключается в том, что курсор ограничен текущей строкой, а также в обновлении экрана. Она может быть использована для включения редактирования строки «символ в момент времени» без касания остальной части экрана.
-
curses.
flash
()¶ Мигание экрана. То есть, изменяет его на обратное видео, а затем снова на короткий интервал. Некоторые люди предпочитают, например, «видимый звонок» звуковому сигналу внимания, создаваемому
beep()
.
-
curses.
flushinp
()¶ Очистить все входные буферы. Это устраняет все типоразмеры, которые были введены пользователем и еще не обработаны программой.
-
curses.
getmouse
()¶ После того, как
getch()
вернетKEY_MOUSE
, чтобы сигнализировать о событии мыши, этот метод должен быть вызван для получения события мыши в очереди, представленного как 5-кортеж(id, x, y, z, bstate)
. id — это значение идентификатора, используемое для различения нескольких устройств, а x, y, z — координаты события. (z в настоящее время не используется.) bstate — это целочисленное значение, биты которого будут установлены для указания типа события, и будет побитовым ИЛИ одной или нескольких из следующих констант, где n - номер кнопки от 1 до 4:BUTTONn_PRESSED
,BUTTONn_RELEASED
,BUTTONn_CLICKED
,BUTTONn_DOUBLE_CLICKED
,BUTTONn_TRIPLE_CLICKED
,BUTTON_SHIFT
,BUTTON_CTRL
,BUTTON_ALT
.
-
curses.
getsyx
()¶ Возвращает текущие координаты виртуального курсора экрана как кортеж
(y, x)
. Еслиleaveok
установлено вTrue
, то вернёт(-1, -1)
.
-
curses.
getwin
(file)¶ Считывание связанных с окном данных, сохраненных в файле, с помощью более раннего вызова
putwin()
. Затем подпрограмма создает и инициализирует новое окно с использованием этих данных, возвращая новый объект окна.
-
curses.
has_colors
()¶ Возвращает
True
, если терминал может отображать цвета; в противном случае возвращаетFalse
.
-
curses.
has_ic
()¶ Возвращает
True
, если у терминала есть возможности по вставке и удаления символа. Эта функция включена только по историческим причинам, так как все современные программные эмуляторы терминала поддерживают такие возможности.
-
curses.
has_il
()¶ Возвращает значение
True
, если терминал содержит возможности вставки и удаления линий или может моделировать их с помощью областей прокрутки. Эта функция включена только по историческим причинам, так как все современные программные эмуляторы терминала имеют такие возможности.
-
curses.
has_key
(ch)¶ Принять ключевое значение ch и вернуть
True
, если текущий тип терминала распознает ключ с этим значение.
-
curses.
halfdelay
(tenths)¶ Используется для режима с половинной задержкой, который аналогичен режиму cbreak в том смысле, что символы, вводимые пользователем, немедленно становятся доступными для программы. Однако после блокировки в течение tenths десятых секунд, поднимет исключение, если ничего не было напечатано. Значение tenths должно быть числом между
1
и255
. Командаnocbreak()
используется для выхода из режима половинной задержки.
-
curses.
init_color
(color_number, r, g, b)¶ Изменяет определение цвета, взяв номер изменяемого цвета, за которым следуют три значения RGB (для количества красного, зеленого и синего компонентов). Значение color_number должно быть между
0
и COLORS - 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 как байтовый объект. Имя клча производящего пригодного для печатания ASCII символ - ключевой символ. Имя управляющий-ключевой комбинации представляет собой двухбайтовый байтовый объект, состоящий из каретки (
b'^'
), за которой следует соответствующий печатаемый ASCII символ. Имя alt-ключей комбинации (128 - 255) представляет собой байтовый объект, состоящий из префиксаb'M-'
, за которым следует имя соответствующего ASCII символа.
-
curses.
killchar
()¶ Возвращает текущий пользовательский символ удаления строки как однобайтовый байтовый объект. В операционных системах Unix это свойство управляющей tty программы curses, и не устанавливается самой библиотекой curses.
-
curses.
longname
()¶ Возвращает объект в байтах, содержащий поле 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) Вернёт новый window, левый верхний угол которого находится в точке
(begin_y, begin_x)
и высота/ширина которого равна nlines/ncols.По умолчанию окно продолжается из указанного положения в правый нижний угол экрана.
-
curses.
nl
()¶ Переход в режим newline. Этот режим преобразует клавишу return в новую строку на входе и преобразует новую линию в return и перевод на новую строку на выходе. Режим «newline» первоначально включен.
-
curses.
nocbreak
()¶ Выход из режима cbreak. Возвращение к обычному «cooked» режиму с буферизацией строк.
-
curses.
noecho
()¶ Выход из эхо-режима. Эхо входных символов отключено.
-
curses.
nonl
()¶ Выход из режима newline. Отключить перевод return в newline на входе и отключить низкоуровневое newline в newline/return на выводе (но это не изменяет поведение
addch('\n')
, который всегда эквивалентен return и новой строке в виртуальном экране). При выключенном переводе curses иногда может немного ускорить вертикальное движение; кроме того, он сможет обнаруживать клавишу return при вводе.
-
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 режим. В raw режиме нормальная буферизация строк и обработка прерываний клавиш, выхода, приостановки и управления потоком отключаются; знаки представлены входным функциям curses один за другим.
-
curses.
reset_prog_mode
()¶ Восстановить терминал в «program» режим, сохраненном ранее
def_prog_mode()
.
-
curses.
reset_shell_mode
()¶ Восстановить терминал в «shell» режим, который ранее сохранён
def_shell_mode()
.
-
curses.
resetty
()¶ Восстановить состояние терминальный режимов к тому, чем он был при последнем вызове
savetty()
.
-
curses.
resize_term
(nlines, ncols)¶ Бэкэнд-функция используемая
resizeterm()
, выполняющая большую часть работы; при изменении размеров окон командаresize_term()
заполняет расширенные области пустотой. Вызывающее приложение должно заполнить эти области соответствующими данными. Функцияresize_term()
пытается изменить размер всех окон. Однако из-за соглашения о вызове pads изменить их размер без дополнительного взаимодействия с приложением невозможно.
-
curses.
resizeterm
(nlines, ncols)¶ Изменение размеров стандартных и текущих окон в соответствии с заданными размерами и настройками других табулированных данных, используемых библиотекой curses, в которой записываются размеры окна (в частности, обработчик SIGWINCH).
-
curses.
savetty
()¶ Сохранить текущий состояние терминальных режимов в буфере, используемом
resetty()
.
-
curses.
setsyx
(y, x)¶ Установить курсор виртуального экрана в y, x. Если y и x оба содержат
-1
, тоleaveok
устанавливается вTrue
.
-
curses.
setupterm
(term=None, fd=-1)¶ Инициализировать терминал. term - переданное строковое имя терминала или
None
; если пропущено илиNone
, будет использован значение переменной средыTERM
. fd - это файловый дескриптор, в который будут отправляться все последовательности инициализации; если не передаётся или-1
, будет использован файловый дескрипторsys.stdout
.
-
curses.
start_color
()¶ Должен вызываться, если программист хочет использовать цвета, и перед вызовом любой другой процедуры манипулирования цветом. Это хорошая практика называть эту рутину сразу после
initscr()
.start_color()
инициализирует восемь основных цветов (черный, красный, зеленый, желтый, синий, пурпурный, голубой, и белый), и две глобальные переменные в модулеcurses
,COLORS
иCOLOR_PAIRS
, содержа максимальное количество цветов и цветных пар, которые может поддержать терминал. Это также восстанавливает цвета на терминале к значения, который они имели, когда терминал был просто включен.
-
curses.
termattrs
()¶ Возвращает логическое ИЛИ всех видео атрибуты, поддерживаемых терминалом. Эта информация полезна, когда программа curses нуждается в полном контроле над внешним видом экрана.
-
curses.
termname
()¶ Возвращает значение переменной среды
TERM
в виде байтового объекта, усеченного до 14 символов.
-
curses.
tigetflag
(capname)¶ Возвращает значение логической возможности, соответствующей имени terminfo возможности capname, в виде целого числа. Возвращает значение
-1
, если capname не является логической возможностью, или0
, если она отменена или отсутствует в описании терминала.
-
curses.
tigetnum
(capname)¶ Возвращает значение числовой возможности, соответствующей terminfo возможности имени capname, в виде целого числа. Возвращает значение
-2
, если capname не является числовой возможностью, или-1
, если она отменена или отсутствует в описании терминала.
-
curses.
tigetstr
(capname)¶ Возвращает значение способности строка, соответствующей terminfo способности, называться capname как байтовый объект. Возвращает
None
, если capname не terminfo «характеризуемый строкой», или отменен или отсутствует в описании терминала.
-
curses.
tparm
(str[, ...])¶ Создать экземпляр байтового объекта str с предоставленными параметрами, где str должен быть параметризованной строкой, полученной из базы данных terminfo. Например,
tparm(tigetstr("cup"), 5, 3)
может привести кb'\033[6;4H'
, точному результату в зависимости от типа терминала.
-
curses.
typeahead
(fd)¶ Указать, что файловый дескриптор fd используется для проверки типа. Если fd является
-1
, то проверка типа не выполняется.Библиотека curses выполняет «оптимизацию прорыва линии» путем периодического поиска заголовка при обновлении экрана. Если входные данные найдены и поступают от tty, текущее обновление откладывается до вызова обновления или повторного обновления, что позволяет быстрее реагировать на команды, переданные заранее. Функция позволяет указать другой файловый дескриптор для проверки типа заголовка.
-
curses.
unctrl
(ch)¶ Возвращает байтовый объект, который является печатаемым представлением символа 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, ...)¶ Инициализировать curses и вызвать другой вызываемый объект, func, который должен быть остальной частью приложения, использующего curses. Если приложение поднимет исключение, то эта функция вернет терминал к нормальному состоянию прежде, чем повторно поднять исключение и произвести трейсбэк. Вызываемый объект func затем передается главному окну «stdscr» в качестве первого аргумента, за которым следуют любые другие аргументы, переданные
wrapper()
. Прежде, чем назвать func,wrapper()
включает cbreak режим, выключает эхо, включает терминальную клавиатуру и инициализирует цвета, если у терминала есть цветная поддержка. При выходе (как обычным, так и по исключениям) восстанавливает режим cooked, включает эхо и отключает клавиатуру терминала.
Объекты Window¶
У объектов window, возвращаемые initscr()
и newwin()
, есть следующие
методы и атрибуты:
-
window.
addch
(ch[, attr])¶ -
window.
addch
(y, x, ch[, attr]) Раскрасить символ ch в
(y, x)
с атрибутами attr, перезаписав любой символ, ранее нарисованный в этом месте. По умолчанию позиция символа и атрибуты являются текущими настройками для объекта window.Примечание
Запись вне window, subwindow или pad поднимает
curses.error
. Попытка записи правому нижнему углу window, subwindow или pad заставит поднятся исключению после того, как символ будет напечатан.
-
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, перезаписав что-либо ранее на дисплее.Примечание
- Запись вне window, subwindow или pad поднимет
curses.error
. Попытка записи правому нижнему углу window, subwindow или pad заставит поднятие исключения после того, как строка будет напечатана. - Ошибка в ncurses, бэкенд для этого Python модуля,
может вызвать ошибку сегментации, изменяя размеры окон. Это зафиксировано в
ncurses-6.1-20190511. Если вы застряли
с более ранними ncurses, вы можете избежать его запуска, если не вызвать
addstr()
с str, который встраивает новые строки. Вместо этого вызовитеaddstr()
отдельно для каждой строки.
- Запись вне window, subwindow или pad поднимет
-
window.
attroff
(attr)¶ Удалить атрибут attr из набора «фон», применяемого ко всем записям в текущее окно.
-
window.
attron
(attr)¶ Добавить атрибут attr из набора «фон», применяемого ко всем записям в текущем окне.
-
window.
attrset
(attr)¶ Установить для фонового набора атрибуты attr. Этот набор изначально является
0
(без атрибутов).
-
window.
bkgd
(ch[, attr])¶ Установить для свойства фона окна символ ch, с атрибутами attr. Затем изменение применяется к каждой позиции символа в этом окне:
- Атрибут каждого символа в окне изменяется на новый фоновый атрибут.
- Где бы ни появлялся прежний фон символа, он изменяется на новый фоновый символ.
-
window.
bkgdset
(ch[, attr])¶ Установить фон окна. Фон окна состоит из символа и любой комбинации атрибутов. Часть атрибута фона объединяется (ИЛИ) с всеми непустыми символами, которые записываются в окно. Как символ, так и атрибут части фона объединяются с пустыми символами. Фон становится свойством символа и перемещается с символом через скроллинг, и операции вставки/удаления строки/символа.
-
window.
border
([ls[, rs[, ts[, bs[, tl[, tr[, bl[, br]]]]]]]])¶ Нарисовать границу вокруг краев окна. Каждый параметр определяет символ, используемый для определенной части границы; для получения дополнительной информации см. таблицу ниже.
Примечание
0
значение для любого параметра приведёт к использовании символа по умолчанию для этого параметра. Ключевые параметры не могут быть используемы. Значения по умолчанию перечислены в следующей таблице:Параметр Описание Значение по умолчанию ls Левая сторона ACS_VLINE
rs Правая сторона ACS_VLINE
ts Верх ACS_HLINE
bs Низ ACS_HLINE
tl Левый верхний угол ACS_ULCORNER
tr Верхний правый угол ACS_URCORNER
bl Нижний левый угол ACS_LLCORNER
br Правый нижний угол ACS_LRCORNER
-
window.
box
([vertch, horch])¶ Аналогично
border()
, но ls и rs являются vertch и оба ts и bs являются horch. По умолчанию угловые символы всегда используются этой функцией.
-
window.
chgat
(attr)¶ -
window.
chgat
(num, attr) -
window.
chgat
(y, x, attr) -
window.
chgat
(y, x, num, attr) Установить атрибуты num символов в текущей позиции курсора, или в позиции
(y, x)
, если поддерживается. Если параметр num не задан или имеет значение-1
, атрибут будет установлен на всех символах до конца строки. Эта функция перемещает курсор в положение(y, x)
, если оно предоставлено. Измененная строка будет затронута с помощью методаtouchline()
, чтобы содержимое было вновь отображено при следующем обновлении окна.
-
window.
clear
()¶ Подобно
erase()
, но также приводит к перекрашиванию всего окна при следующем вызовеrefresh()
.
-
window.
clrtobot
()¶ Стереть от курсора до конца окна: все строки под курсором удаляются, а затем выполняется эквивалент
clrtoeol()
.
-
window.
clrtoeol
()¶ Стереть от курсора до конца строки.
-
window.
cursyncup
()¶ Обновление текущего положения курсора всех предков окна для отражения текущего положения курсора окна.
-
window.
delch
([y, x])¶ Удалить все символ в
(y, x)
.
-
window.
deleteln
()¶ Удалите строку под курсором. Все следующие строки перемещаются вверх на одну строку.
-
window.
derwin
(begin_y, begin_x)¶ -
window.
derwin
(nlines, ncols, begin_y, begin_x) Аббревиатура от «производное окно»,
derwin()
совпадает с вызовомsubwin()
, за исключением того, что begin_y и begin_x относятся к происхождению окна, а не ко всему экрану. Возвращение объекта окна для производного окна.
-
window.
echochar
(ch[, attr])¶ Добавить символ ch с атрибутом attr и немедленно вызвать
refresh()
в окне.
-
window.
enclose
(y, x)¶ Проверить, заключена ли данная пара координат символа-ячейки относительно экрана в данное окно, возвращая
True
илиFalse
. Он полезен для определения того, какое подмножество экранных окон содержит местоположение события мыши.
-
window.
encoding
¶ Используемая кодировка для кодирования аргументов метода (Юникод строки и знаки). Атрибут encoding наследуется из родительского окна при создании подокна, например, с помощью
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)¶ Если flag является
True
,curses
попытается использовать аппаратные средства редактирования строк. В противном случае вставка/удаление строки отключены.
-
window.
immedok
(flag)¶ Если flag является
True
, любое изменение изображения окна автоматически приводит к обновлению окна; вы больше не должны вызыватьrefresh()
самостоятельно. Тем не менее, это может значительно снизить производительность из-за повторных вызовов в wrefresh. По умолчанию этот параметр отключен.
-
window.
inch
([y, x])¶ Вернёт символ в заданной позиции в окне. Нижние 8 бит являются собственным символом, а верхние биты - атрибуты.
-
window.
insch
(ch[, attr])¶ -
window.
insch
(y, x, ch[, attr]) Нарисовать символ ch в
(y, x)
с атрибутом attr, перемещая линию от позиции x прямо в одним символ.
-
window.
insdelln
(nlines)¶ Вставка nlines строк в указанное окно над текущей строкой. Нижние строки nlines теряются. Для отрицательного nlines удалит nlines строк, начинающиеся с той, что под курсором, и переместить остающиеся строки вверх. Нижние nlines строки очищаются. Текущее положение курсора остается прежним.
-
window.
insertln
()¶ Вставка пустой строки под курсор. Все следующие строки перемещаются вниз на одну строку.
-
window.
insnstr
(str, n[, attr])¶ -
window.
insnstr
(y, x, str, n[, attr]) Вставить символ строки (столько символов, сколько поместится в строке) перед символом под курсором, до n символов. Если n - ноль или отрицательный, вставляется вся строка. Все символы справа от курсора смещаются вправо, при этом самые правые символы в строке теряются. Положение курсора не изменяется (после перемещения y, x, если указано).
-
window.
insstr
(str[, attr])¶ -
window.
insstr
(y, x, str[, attr]) Вставить символ строки (столько символов, сколько поместится в строке) перед символом под курсором. Все символы справа от курсора смещаются вправо, при этом самые правые символы в строке теряются. Положение курсора не изменяется (после перемещения y, x, если указано).
-
window.
instr
([n])¶ -
window.
instr
(y, x[, n]) Возвращает байтовый объект символов, извлеченных из окна, начинающегося в текущей позиции курсора, или y, x, если определено. Атрибуты удаляются из символов. Если n определен,
instr()
возвращает строку с наибольшей длиной знаков n (за исключения окачивающихся на NUL).
-
window.
is_linetouched
(line)¶ Возвращать
True
, если указанная строка была изменена с момента последнего вызоваrefresh()
; в противном случае возвращаютFalse
. Вызовет исключениеcurses.error
, если line недопустим для данного окна.
-
window.
is_wintouched
()¶ Возвращает
True
, если указанное окно было изменено с момента последнего вызоваrefresh()
; в противном случае возвращаетFalse
.
-
window.
keypad
(flag)¶ Если flag является
True
, то escape последовательности, генерируемые некоторыми клавишами (клавиатурой, функциональными клавишами), будут интерпретироватьсяcurses
. Если flag равенFalse
, escape последовательности будут оставлены как есть во входном потоке.
-
window.
leaveok
(flag)¶ Если flag содержит
True
, курсор остается там, где находился при обновлении, а не находится в «положении курсора». Это уменьшает перемещение курсора там, где это возможно. По возможности курсор становится невидимым.Если flag содержит
False
, курсор всегда будет находиться в «положении курсора» после обновления.
-
window.
move
(new_y, new_x)¶ Переместить курсор на
(new_y, new_x)
.
-
window.
mvderwin
(y, x)¶ Переместить окно внутри родительского окна. Относительные к экрану параметры окна не изменяются. Этот установленный порядок - используемый, чтобы показать различные части родительского окна в том же физическом положении на экране.
-
window.
mvwin
(new_y, new_x)¶ Переместить окно так, чтобы его верхний левый угол находился в точке
(new_y, new_x)
.
-
window.
notimeout
(flag)¶ Если параметр flag содержит значение
True
, время ожидания escape- последовательностей не истекает.Если flag равен
False
, то через несколько миллисекунд escape- последовательность не будет интерпретирована и останется во входном потоке как есть.
-
window.
noutrefresh
()¶ Пометить для обновления, но ожидать. Эта функция обновляет структуру данных, представляющую требуемое состояние окна, но не принудительно обновляет физический экран. Для этого вызовите
doupdate()
.
-
window.
overlay
(destwin[, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol])¶ Наложить окно поверх окна destwin. Окна не обязательно должны иметь одинаковый размер, копируется только перекрывающаяся область. Эта копия является неразрушающей, что означает, что текущий фоновый символ не перезаписывает старое содержимое destwin.
Чтобы получить более точный контроль над скопированным регионом, может быть использована вторая форма
overlay()
. sminrow и smincol являются левыми верхними координатами окна источника, а другие переменные обозначают прямоугольник в окне назначения.
-
window.
overwrite
(destwin[, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol])¶ Перезаписать окно поверх окна destwin. Окна не обязательно должны иметь одинаковый размер, и в этом случае копируется только перекрывающаяся область. Эта копия разрушительна, что означает, что текущий фоновый символ перезаписывает старое содержимое destwin.
Чтобы получить более точный контроль над скопированным регионом, может быть использована вторая форма
overwrite()
. sminrow и smincol являются левыми верхними координатами окна источника, а другие переменные обозначают прямоугольник в окне назначения.
-
window.
putwin
(file)¶ Записать все данные, связанные с окном, в предоставленный объект файла. Эта информация может быть позднее получена с помощью функции
getwin()
.
-
window.
redrawln
(beg, num)¶ Указать, что строки экрана num, начиная с строки beg, повреждены и должны быть полностью перерисованы при следующем вызове
refresh()
.
-
window.
redrawwin
()¶ Коснуться всего окна, заставив его быть полностью измененным при следующем вызове
refresh()
.
-
window.
refresh
([pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol])¶ Немедленно обновить отображение (синхронизировать фактический экран с предыдущими методами рисования/удаления).
6 дополнительных аргументов могут быть указаны только в том случае, если окно является pad, созданной с помощью
newpad()
. Дополнительные параметры необходимы для указания того, какая часть pad и экрана задействована. pminrow и pmincol указание верхнего левого угла прямоугольника, отображаемого на pad. sminrow, smincol, smaxrow и smaxcol указание края прямоугольника, отображаемого на экране. Нижний правый угол прямоугольника, отображаемого на pad, рассчитывается по координатам экрана, поскольку прямоугольники должны иметь одинаковый размер. Оба прямоугольника должны полностью содержаться в соответствующих структурах. Отрицательные значения pminrow, pmincol, sminrow или smincol рассматривают, как будто они были нолем.
-
window.
resize
(nlines, ncols)¶ Перераспределите место хранения для окна curses, чтобы приспособить его размеры к указанному значению. Если какое-либо измерение больше текущих значений, данные окна заполняются пустыми элементами, в которые объединяются текущие фоновые представления (заданные параметром
bkgdset()
).
-
window.
scroll
([lines=1])¶ Прокрутить экран или область прокрутки вверх на lines строк.
-
window.
scrollok
(flag)¶ Контроль, что происходит, когда курсор окна перемещается за край окна или скролируемого региона, или в результате действия новой строки внизу строки или ввода последнего символа последней строки. Если flag -
False
, курсор оставляют на нижней строке. Если flag равенTrue
, окно прокручивается вверх на одну строку. Следует отметить, что для получения физического эффекта прокрутки на терминале необходимо также вызвать функциюidlok()
.
-
window.
setscrreg
(top, bottom)¶ Задать область прокрутки от строки top к строке bottom. Все действия прокрутки будут выполняться в этом регионе.
-
window.
standend
()¶ Выключить выделяющийся атрибут. На некоторых терминалх это повлечёт побочный эффект отключения всех атрибутов.
-
window.
standout
()¶ Включить атрибут A_STANDOUT.
-
window.
subpad
(begin_y, begin_x)¶ -
window.
subpad
(nlines, ncols, begin_y, begin_x) Возвращает подокно, верхний левый угол которого находится в точке
(begin_y, begin_x)
и ширина/высота которого равна ncols/nlines.
-
window.
subwin
(begin_y, begin_x)¶ -
window.
subwin
(nlines, ncols, begin_y, begin_x) Возвращает подокно, верхний левый угол которого находится в точке
(begin_y, begin_x)
и ширина/высота которого равна ncols/nlines.По умолчанию подокно будет проходить из указанного положения в правый нижний угол окна.
-
window.
syncdown
()¶ Коснуться каждого места в окне, которое было затронуто в любом из его предков окон. Эта подпрограмма вызывается
refresh()
, поэтому ее почти никогда не нужно вызывать вручную.
-
window.
syncok
(flag)¶ Если flag является
True
, тоsyncup()
вызывается автоматически при каждом изменении в окне.
-
window.
syncup
()¶ Коснуться всех мест в предках окна, которые были изменены в окне.
-
window.
timeout
(delay)¶ Установка блокирующего или неблокирующего режима чтения для окна. Если delay отрицателен, используется блокирующее чтение (который будет ждать ввода бесконечно). Если delay равен нулю, то используется неблокирующее чтение, и
getch()
возвращает-1
, если нет ввода для ожидания. Если delay является положительным, тоgetch()
будет блокироваться в течение delay миллисекунд и возвращать-1
, если в конце этого времени все еще нет входных данных.
-
window.
touchline
(start, count[, changed])¶ Притворяться, что count строк были изменены, начиная с строки start. Если указан параметр changed, будут ли затронутые строки помечены как измененные (changed
=True
) или неизмененные (changed``=False``).
-
window.
touchwin
()¶ Притворяться, что все окно было изменено в целях оптимизации отрисовки.
-
window.
untouchwin
()¶ Отметить все строки в окне как неизменные с момента последнего вызова метода
refresh()
.
-
window.
vline
(ch, n)¶ -
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.
Некоторые константы доступны для определения ячейки символьного атрибута. Точный перечень доступных констант зависят от системы.
Атрибут | Значение |
---|---|
A_ALTCHARSET |
Режим альтернативного набора символов |
A_BLINK |
Режим моргания |
A_BOLD |
Жирный режим |
A_DIM |
Тусклый режим |
A_INVIS |
Невидимый или пустой режим |
A_ITALIC |
Курсивный режим |
A_NORMAL |
Нормальный атрибут |
A_PROTECT |
Защищенный режим |
A_REVERSE |
Обратный фон и цвета переднего плана |
A_STANDOUT |
Режим ожидания |
A_UNDERLINE |
Подчеркнутый режим |
A_HORIZONTAL |
Горизонтальная подсветка |
A_LEFT |
Левая подсветка |
A_LOW |
Нижняя подсветка |
A_RIGHT |
Правая подсветка |
A_TOP |
Верхняя подсветка |
A_VERTICAL |
Вертикальная подсветка |
A_CHARTEXT |
Битовая маска для извлечения символа |
Добавлено в версии 3.7: Был добавлен A_ITALIC
.
Для извлечения соответствующих атрибутов, возвращаемых некоторыми методы, доступно несколько констант.
Битовая маска | Значение |
---|---|
A_ATTRIBUTES |
Битовая маска для извлечения атрибутов |
A_CHARTEXT |
Битовая маска для извлечения символа |
A_COLOR |
Битовая маска для извлечения информация о поле цветовой пары |
Ключи - целочисленные константы с именами, начинающимися с
KEY_
. Точнный перечень доступных ключей зависит от системы.
Ключевая константа | Ключ |
---|---|
KEY_MIN |
Минимальное значение ключа |
KEY_BREAK |
Ключевой разрыв (ненадежный) |
KEY_DOWN |
Стрелка вниз |
KEY_UP |
Стрелка вверх |
KEY_LEFT |
Стрелка влево |
KEY_RIGHT |
Стрелка вправо |
KEY_HOME |
Домашняя клавиша (стрелка вверх+влево) |
KEY_BACKSPACE |
Backspace (ненадежно) |
KEY_F0 |
Функциональные клавиши. Поддерживается до 64 функциональных клавиш. |
KEY_Fn |
Значение функциональной клавиши n |
KEY_DL |
Удалить строку |
KEY_IL |
Вставить строку |
KEY_DC |
Удалить символ |
KEY_IC |
Вставить символ или войти в режим вставки |
KEY_EIC |
Выход из режима вставки символа |
KEY_CLEAR |
Чистый экран |
KEY_EOS |
Очистить до конца экрана |
KEY_EOL |
Очистить до конца строки |
KEY_SF |
Прокрутить 1 строку вперед |
KEY_SR |
Прокрутить 1 строку назад (реверс) |
KEY_NPAGE |
Следующая страница |
KEY_PPAGE |
Предыдущая страница |
KEY_STAB |
Установить таб |
KEY_CTAB |
Очистить таб |
KEY_CATAB |
Очистить все табы |
KEY_ENTER |
Ввод или отправить (ненадежно) |
KEY_SRESET |
Мягкий (частичный) сброс (ненадежный) |
KEY_RESET |
Сброс или полный сброс (ненадежно) |
KEY_PRINT |
Печать |
KEY_LL |
Дом снизу или внизу (внизу слева) |
KEY_A1 |
Верхний левый угол клавиатуры |
KEY_A3 |
Верхний правый угол клавиатуры |
KEY_B2 |
Центр клавиатуры |
KEY_C1 |
Нижний левый угол клавиатуры |
KEY_C3 |
Нижний правый угол клавиатуры |
KEY_BTAB |
Вернуть таб |
KEY_BEG |
Бег (начало) |
KEY_CANCEL |
Отмена |
KEY_CLOSE |
Закрыть |
KEY_COMMAND |
Cmd (команда) |
KEY_COPY |
Копировать |
KEY_CREATE |
Создать |
KEY_END |
Конец |
KEY_EXIT |
Выход |
KEY_FIND |
Найти |
KEY_HELP |
Помощь |
KEY_MARK |
Отметка |
KEY_MESSAGE |
Сообщение |
KEY_MOVE |
Переместить |
KEY_NEXT |
Следующий |
KEY_OPEN |
Открыть |
KEY_OPTIONS |
Опции |
KEY_PREVIOUS |
Prev (предыдущий) |
KEY_REDO |
Повторить |
KEY_REFERENCE |
Ref (ссылка) |
KEY_REFRESH |
Обновление |
KEY_REPLACE |
Замена |
KEY_RESTART |
Перезагрузка |
KEY_RESUME |
Итог |
KEY_SAVE |
Сохранить |
KEY_SBEG |
Смещенный Beg (начало) |
KEY_SCANCEL |
Смещенная Отмена |
KEY_SCOMMAND |
Смещенная Команда |
KEY_SCOPY |
Смещенное Копирование |
KEY_SCREATE |
Смещенное Создание |
KEY_SDC |
Смещенное Удаление символа |
KEY_SDL |
Смещенное Удаление линии |
KEY_SELECT |
Выбор |
KEY_SEND |
Смещенный Конец |
KEY_SEOL |
Смещенная Очистка линии |
KEY_SEXIT |
Смещенный Выход |
KEY_SFIND |
Смещенный Поиск |
KEY_SHELP |
Смещенная Помошь |
KEY_SHOME |
Смещенный Дом |
KEY_SIC |
Смещенный Ввод |
KEY_SLEFT |
Смещенная стрелка влево |
KEY_SMESSAGE |
Смещенное Сообщение |
KEY_SMOVE |
Смещенное Перемещение |
KEY_SNEXT |
Смещенное Далее |
KEY_SOPTIONS |
Смещенные Опции |
KEY_SPREVIOUS |
Смещенная Предыдущая |
KEY_SPRINT |
Смещенная Печать |
KEY_SREDO |
Смещенный Повтор |
KEY_SREPLACE |
Смещенная замена |
KEY_SRIGHT |
Сдвинутая стрелка вправо |
KEY_SRSUME |
Смещённая Сводка |
KEY_SSAVE |
Смещённое Сохранение |
KEY_SSUSPEND |
Смещённая Приостановка |
KEY_SUNDO |
Смещённая Отмена |
KEY_SUSPEND |
Приостановить |
KEY_UNDO |
Отменить |
KEY_MOUSE |
Произошло событие мыши |
KEY_RESIZE |
Событие изменения размера терминала |
KEY_MAX |
Максимальное значение ключа |
На VT100 и их программных эмуляциях, таких как эмуляторы X терминалов, обычно
имеются по меньшей мере четыре функциональные клавиши (KEY_F1
, KEY_F2
,
KEY_F3
, KEY_F4
), а клавиши со стрелками отображены на KEY_UP
,
KEY_DOWN
, KEY_LEFT
и KEY_RIGHT
очевидным образом. Если у
вашего компьютера есть PC клавиатура, можно ожидать клавиши со стрелками и двенадцать
функциональных клавиш (у старых клавиатур PC может быть только десять
функциональных клавиш); также стандартны следующие клавиатурные сопоставления:
Keycap | Константа |
---|---|
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 код | Значение |
---|---|
ACS_BBSS |
альтернативное имя для верхнего правого угла |
ACS_BLOCK |
сплошной квадратный блок |
ACS_BOARD |
доска квадратов |
ACS_BSBS |
альтернативное имя для горизонтальной линии |
ACS_BSSB |
альтернативное имя для верхнего левого угла |
ACS_BSSS |
альтернативное название для верхней тройки |
ACS_BTEE |
нижний тройник |
ACS_BULLET |
маркер |
ACS_CKBOARD |
шашечная доска (стиппл) |
ACS_DARROW |
стрелка, указывающая вниз |
ACS_DEGREE |
символ степени |
ACS_DIAMOND |
бриллиант |
ACS_GEQUAL |
больше или равно |
ACS_HLINE |
горизонтальная линия |
ACS_LANTERN |
символ фонаря |
ACS_LARROW |
стрелка влево |
ACS_LEQUAL |
меньше или равно |
ACS_LLCORNER |
нижний левый угол |
ACS_LRCORNER |
нижний правый угол |
ACS_LTEE |
левый тройник |
ACS_NEQUAL |
знак неравенства |
ACS_PI |
буква пи |
ACS_PLMINUS |
знак плюс или минус |
ACS_PLUS |
большой знак плюса |
ACS_RARROW |
правая стрелка |
ACS_RTEE |
правый тройник |
ACS_S1 |
линия сканирования 1 |
ACS_S3 |
линия сканирования 3 |
ACS_S7 |
линия сканирования 7 |
ACS_S9 |
линия сканирования 9 |
ACS_SBBS |
альтернативное название для нижнего правого угла |
ACS_SBSB |
альтернативное имя для вертикальной линии |
ACS_SBSS |
альтернативное название для правой тройки |
ACS_SSBB |
альтернативное имя для нижнего левого угла |
ACS_SSBS |
альтернативное название для нижних троек |
ACS_SSSB |
альтернативное название для левого тройника |
ACS_SSSS |
альтернативное название для кроссовера или большого плюса |
ACS_STERLING |
фунт стерлингов |
ACS_TTEE |
верхний тройник |
ACS_UARROW |
стрелка вверх |
ACS_ULCORNER |
левый верхний угол |
ACS_URCORNER |
верхний правый угол |
ACS_VLINE |
вертикальная линия |
В следующей таблице перечислены предопределенные цвета:
Константа | Цвет |
---|---|
COLOR_BLACK |
Чёрный |
COLOR_BLUE |
Синий |
COLOR_CYAN |
Голубой (светло-зеленовато-голубой) |
COLOR_GREEN |
Зелёный |
COLOR_MAGENTA |
Пурпурный (пурпурно-красный) |
COLOR_RED |
Красный |
COLOR_WHITE |
Белый |
COLOR_YELLOW |
Жёлтый |
curses.textpad
— Виджет текстового ввода для curses программ¶
Модуль curses.textpad
предоставляет Textbox
класс, который обрабатывает
элементарное редактирование текста в окне curses, поддерживает привязки клавиш,
похожих на Emacs (а также Netscape Navigator, BBedit
6.x, FrameMaker и многих других программ). Модуль также предоставляет функцию
рисования прямоугольника, которая полезна для кадрирования текстовых полей или
для других целей.
Модуль curses.textpad
определяет следующую функцию:
-
curses.textpad.
rectangle
(win, uly, ulx, lry, lrx)¶ Нарисовать прямоугольник. Первый аргумент должен быть оконным объектом; остальные аргументы являются координатами относительно этого окна. Второй и третий аргументы являются координатами y и x верхнего левого угла прямоугольника, который следует нарисовать; четвертый и пятый аргументы являются координатами y и x правого нижнего угла. Прямоугольник будет вычерчиваться с помощью VT100/IBM PC формируемых символов терминала, которые делают это возможным (включая xterm и большинство других эмуляторов программного терминала). В противном случае он будет прорисован штрихами ASCII, вертикальными полосами и знаками плюс.
Объекты Textbox¶
Можно создать экземпляр объекта Textbox
следующим образом:
-
class
curses.textpad.
Textbox
(win)¶ Возвращает объект виджета текстового поля. Аргумент 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
¶ Этот атрибут - флаг, который управляет интерпретацией пробелов в окне. Когда он включен, завершающие пробелы в каждой строке игнорируются; любое движение курсора, которое поместило бы курсор на завершающий пробел, переведет к его перемещению в конец этой строки и завершающие пробелы удаляются при получении содержимого окна.
-