curses
---字符单元显示的终端处理
这个 curses
模块提供了到Curses库的接口,Curses库是便携式高级终端处理的事实标准。
Curses在Unix环境中使用最广泛,但Windows、DOS和其他系统也有可用的版本。此扩展模块旨在匹配ncurses的API、Linux上托管的开源Curses库和Unix的BSD变体。
注解
每当文件提到 character 它可以指定为整数、一个字符Unicode字符串或一个字节字节字符串。
每当文件提到 字符串 它可以指定为Unicode字符串或字节字符串。
注解
自5.4版以来,ncurses库决定如何使用 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编程
Andrew Kuchling和Eric Raymond提供的关于在Python中使用curses的教程材料。
这个 Tools/demo/ python源发行版中的目录包含一些使用此模块提供的curses绑定的示例程序。
功能
模块 curses
定义以下异常:
注解
无论何时 x 或 y 函数或方法的参数是可选的,它们默认为当前光标位置。无论何时 attr 是可选的,默认为 A_NORMAL
.
模块 curses
定义以下函数:
- curses.cbreak()
进入cbreak模式。在cbreak模式(有时称为“稀有”模式)下,正常的tty行缓冲被关闭,可以逐个读取字符。但是,与原始模式不同,特殊字符(中断、退出、挂起和流控制)保留它们对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)
设置光标状态。 能见度 可以设置为
0
,1
或2
,表示不可见、正常或非常可见。如果终端支持请求的可见性,则返回上一个光标状态;否则引发异常。在许多终端上,“可见”模式是下划线光标,“非常可见”模式是块光标。
- curses.def_prog_mode()
将当前终端模式保存为“程序”模式,即运行程序使用curses时的模式。(它的对应项是“shell”模式,当程序不在curses中时。)随后调用
reset_prog_mode()
将恢复此模式。
- curses.def_shell_mode()
将当前终端模式保存为“shell”模式,即运行程序不使用curses时的模式。(当程序使用Curses功能时,其对应的模式是“程序”模式。)随后调用
reset_shell_mode()
将恢复此模式。
- curses.doupdate()
更新物理屏幕。Curses库保留两个数据结构,一个表示当前物理屏幕内容,一个表示所需下一个状态的虚拟屏幕。这个
doupdate()
地面更新物理屏幕以匹配虚拟屏幕。虚拟屏幕可以通过
noutrefresh()
在写入操作后调用,例如addstr()
已在窗口上执行。正常人refresh()
调用是简单的noutrefresh()
然后doupdate()
;如果必须更新多个窗口,可以通过发出noutrefresh()
调用所有窗口,然后调用一个doupdate()
.
- curses.filter()
这个
filter()
如果使用例程,则必须在initscr()
被调用。结果是,在这些通话中,LINES
设置为1
;能力clear
,cup
,cud
,cud1
,cuu1
,cuu
,vpa
残疾人;以及home
字符串被设置为cr
.其效果是光标仅限于当前行,屏幕更新也是如此。这可用于在不接触屏幕其余部分的情况下启用字符一次行编辑。
- curses.flash()
闪烁屏幕。也就是说,将其更改为反转视频,然后在短时间内将其重新更改。有些人类似于“可视铃”,而不是
beep()
.
- 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.has_extended_color_support()
返回
True
如果模块支持扩展颜色;否则,返回False
. 扩展颜色支持允许支持超过16种颜色(例如xterm-256color)的终端使用256种以上的颜色对。扩展颜色支持需要ncurses 6.1或更高版本。
3.10 新版功能.
- curses.halfdelay(tenths)
用于半延迟模式,类似于cbreak模式,因为用户键入的字符可立即用于程序。但是,在封锁后 十分之一 十分之一秒,如果未键入任何内容,则引发异常。价值 十分之一 必须是介于
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()
初始化库。返回A 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-key组合的名称(128-255)是一个由前缀组成的bytes对象。b'M-'
后跟相应的ASCII字符的名称。
- curses.longname()
返回一个bytes对象,该对象包含描述当前终端的terminfo long name字段。详细描述的最大长度为128个字符。只有在调用
initscr()
.
- curses.mousemask(mousemask)
设置要报告的鼠标事件,并返回元组
(availmask, oldmask)
. 有效掩码 指示可以报告指定的鼠标事件中的哪一个;一旦完全失败,它将返回0
. 旧掩模 是给定窗口的鼠标事件掩码的前一个值。如果从未调用此函数,则不会报告任何鼠标事件。
- curses.newpad(nlines, ncols)
创建并返回一个指向具有给定行数和列数的新PAD数据结构的指针。返回一个pad作为窗口对象。
pad就像一个窗口,只是它不受屏幕大小的限制,也不一定与屏幕的特定部分相关联。当需要大窗口时,可以使用垫子,一次只有一部分窗口在屏幕上。不会自动刷新焊盘(如从滚动或回音输入)。这个
refresh()
和noutrefresh()
PAD的方法需要6个参数来指定要显示的PAD部分和屏幕上用于显示的位置。这些参数是 普米罗 , 普米科尔 , 斯米罗 , 斯米科尔 , 斯马克罗 , 斯马科尔 ; p 参数是指要显示的焊盘区域的左上角,以及 s 参数定义屏幕上要显示填充区域的剪切框。
- curses.newwin(nlines, ncols)
- curses.newwin(nlines, ncols, begin_y, begin_x)
返回一个新的 window ,其左上角位于
(begin_y, begin_x)
,其高度/宽度为 非线性 / 恩科斯 .默认情况下,窗口将从指定位置延伸到屏幕的右下角。
- curses.nonl()
保持换行模式。禁用在输入时将返回转换为换行,并禁用将换行转换为换行/输出时返回的低级转换(但这不会更改
addch('\n')
,它总是在虚拟屏幕上执行相当于返回和换行的操作)。关闭翻译后,curses有时会使垂直运动加快一点;此外,它还可以检测输入时的返回键。
- curses.noqiflush()
当
noqiflush()
使用常规程序,正常刷新与INTR
,QUIT
和SUSP
字符将无法完成。你可能想调用noqiflush()
在信号处理程序中,如果希望在处理程序退出后继续输出,就像没有发生中断一样。
- 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.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()
函数尝试调整所有窗口的大小。但是,由于pad的调用约定,如果不与应用程序进行额外的交互,就无法调整这些pad的大小。
- curses.savetty()
将终端模式的当前状态保存在缓冲区中,可由
resetty()
.
- curses.get_escdelay()
检索由设置的值
set_escdelay()
.3.9 新版功能.
- curses.get_tabsize()
检索由设置的值
set_tabsize()
.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.tigetstr(capname)
返回与terminfo功能名称对应的字符串功能的值 卡佩克 作为字节对象。返回
None
如果 卡佩克 不是terminfo“字符串功能”,或者在终端描述中取消或不存在。
- curses.tparm(str[, ...])
实例化bytes对象 str 使用提供的参数,其中 str 应该是从terminfo数据库获取的参数化字符串。例如。
tparm(tigetstr("cup"), 5, 3)
可能导致b'\033[6;4H'
,具体结果取决于终端类型。
- curses.typeahead(fd)
指定文件描述符 fd 用于打印前检查。如果 fd 是
-1
,则不进行预输入检查。Curses库通过在更新屏幕时定期查找提前排字来进行“换行优化”。如果找到输入,并且它来自tty,则当前更新将被推迟,直到再次调用refresh或doupdate,从而可以更快地响应预先输入的命令。此函数允许指定一个不同的文件描述符来进行预先排版检查。
- curses.ungetch(ch)
推 ch 所以下一个
getch()
将返回它。注解
只有一个 ch 之前可以推
getch()
被称为。
- curses.unget_wch(ch)
推 ch 所以下一个
get_wch()
将返回它。注解
只有一个 ch 之前可以推
get_wch()
被称为。3.3 新版功能.
- curses.use_env(flag)
如果使用此函数,则应在
initscr()
或者称为新术语。什么时候? flag 是False
,将使用terminfo数据库中指定的行和列的值,即使环境变量LINES
和COLUMNS
(默认使用)被设置,或者如果curses正在窗口中运行(在这种情况下,默认行为将使用窗口大小,如果LINES
和COLUMNS
未设置)。
窗口对象
窗口对象,由返回 initscr()
和 newwin()
上面有以下方法和属性:
- window.addch(ch[, attr])
- window.addch(y, x, ch[, attr])
涂料特性 ch 在
(y, x)
带属性 attr ,覆盖先前在该位置绘制的任何字符。默认情况下,角色位置和属性是窗口对象的当前设置。注解
在窗口、子窗口或PAD外写入将引发
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
. 试图写入窗口、子窗口或便笺簿的右下角将导致打印字符串后引发异常。A bug in ncurses 在调整窗口大小时,此python模块的后端可能会导致segfaults。这是在NCURSES-6.1-20190511中修复的。如果你陷入了早先的困境,如果你不打电话,你可以避免触发这个。
addstr()
用一个 str 嵌入了换行符。相反,打电话addstr()
每行单独填写。
- window.bkgd(ch[, attr])
将窗口的background属性设置为字符 ch ,具有属性 attr . 然后将更改应用于该窗口中的每个字符位置:
窗口中每个字符的属性都将更改为新的背景属性。
无论前一个背景字符出现在何处,它都将更改为新的背景字符。
- window.bkgdset(ch[, attr])
设置窗口的背景。窗口的背景由字符和任何属性组合组成。背景的属性部分与写入窗口的所有非空白字符组合(或编辑)。背景的字符和属性部分都与空白字符相结合。背景将成为字符的一个属性,并随字符一起在任何滚动和插入/删除行/字符操作中移动。
- window.border([ls[, rs[, ts[, bs[, tl[, tr[, bl[, br]]]]]]]])
在窗口边缘周围画一个边框。每个参数指定用于边框特定部分的字符;有关详细信息,请参阅下表。
注解
A
0
任何参数的值都将导致该参数使用默认字符。关键字参数可以 not 被使用。此表列出了默认值:参数
描述
默认值
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 是 维尔奇 而且两者 ts 和 bs 是 霍奇 . 此函数始终使用默认的角字符。
- window.chgat(attr)
- window.chgat(num, attr)
- window.chgat(y, x, attr)
- window.chgat(y, x, num, attr)
设置的属性 num 当前光标位置或位置处的字符
(y, x)
如果提供。如果 num 没有给出或是-1
,属性将设置在所有字符的行尾。此函数将光标移动到位置(y, x)
如果提供。将使用touchline()
方法,以便在下次刷新窗口时重新显示内容。
- window.clearok(flag)
如果 flag 是
True
,下次调用refresh()
将完全清除窗口。
- window.clrtobot()
从光标到窗口末端的擦除:删除光标下的所有行,然后等效于
clrtoeol()
执行。
- 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()
在Windows上。
- window.encoding
用于编码方法参数(Unicode字符串和字符)的编码。创建子窗口时,编码属性从父窗口继承,例如
window.subwin()
. 默认情况下,使用区域设置编码(请参见locale.getpreferredencoding()
)3.3 新版功能.
- window.getch([y, x])
获得一个角色。请注意,返回的整数为 not 必须在ASCII范围内:功能键、键盘键等由大于255的数字表示。在无延迟模式下,返回
-1
如果没有输入,则等待按键。
- window.getkey([y, x])
获取一个字符,返回一个字符串而不是一个整数,如
getch()
做。功能键、键盘键和其他特殊键返回包含键名的多字节字符串。在无延迟模式下,如果没有输入,则引发异常。
- window.getstr()
- window.getstr(n)
- window.getstr(y, x)
- window.getstr(y, x, n)
从用户读取一个具有基本行编辑能力的bytes对象。
- window.idcok(flag)
如果 flag 是
False
,curses不再考虑使用终端的硬件插入/删除字符功能;如果 flag 是True
,启用字符插入和删除。首次初始化curses时,默认情况下启用字符插入/删除。
- window.idlok(flag)
如果 flag 是
True
,curses
将尝试使用硬件线路编辑设备。否则,将禁用行插入/删除。
- window.immedok(flag)
如果 flag 是
True
窗口图像中的任何更改都会自动刷新窗口;您不再需要调用refresh()
你自己。但是,由于对wrefresh的重复调用,它可能会大大降低性能。默认情况下禁用此选项。
- window.insdelln(nlines)
插入 非线性 行到当前行上方的指定窗口中。这个 非线性 底线丢失。否定的 非线性 删除 非线性 从光标下的一行开始,并向上移动其余行。底部 非线性 行被清除。当前光标位置保持不变。
- 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
,某些键(键盘、功能键)生成的转义序列将由curses
.如果 flag 是False
,转义序列将保留在输入流中。
- window.leaveok(flag)
如果 flag 是
True
,光标位于更新时的左侧,而不是位于“光标位置”。这将尽可能减少光标的移动。如果可能,光标将变为不可见。如果 flag 是
False
,更新后光标将始终位于“光标位置”。
- window.nodelay(flag)
如果 flag 是
True
,getch()
将不阻塞。
- window.noutrefresh()
标记为刷新,但请稍候。此函数更新表示窗口所需状态的数据结构,但不强制更新物理屏幕。为此,请致电
doupdate()
.
- window.overlay(destwin[, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol])
将窗口覆盖在 德斯文 . 窗口大小不必相同,只复制重叠区域。此副本是非破坏性的,这意味着当前背景字符不会覆盖 德斯文 .
为了对复制的区域进行细粒度控制,第二种形式的
overlay()
可以使用。 斯米罗 和 斯米科尔 是源窗口的左上角坐标,其他变量在目标窗口中标记一个矩形。
- window.overwrite(destwin[, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol])
覆盖窗口顶部 德斯文 . 窗口的大小不必相同,在这种情况下,只复制重叠区域。此副本具有破坏性,这意味着当前背景字符将覆盖 德斯文 .
为了对复制的区域进行细粒度控制,第二种形式的
overwrite()
可以使用。 斯米罗 和 斯米科尔 是源窗口的左上角坐标,其他变量在目标窗口中标记一个矩形。
- 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()
. 需要额外的参数来指示所涉及的焊盘和屏幕的哪个部分。 普米罗 和 普米科尔 指定要在填充中显示的矩形的左上角。 斯米罗 , 斯米科尔 , 斯马克罗 和 斯马科尔 指定要在屏幕上显示的矩形的边缘。由于矩形的大小必须相同,因此要在填充板中显示的矩形的右下角是根据屏幕坐标计算的。两个矩形必须完全包含在各自的结构中。的负值 普米罗 , 普米科尔 , 斯米罗 或 斯米科尔 被视为零。
- window.resize(nlines, ncols)
重新分配Curses窗口的存储空间,以将其维度调整为指定的值。如果任何一个维度大于当前值,则窗口的数据将填充具有当前背景格式副本的空白(由设置
bkgdset()
)融入其中。
- window.scrollok(flag)
控制当窗口的光标移离窗口边缘或滚动区域时发生的情况,无论是由于底线上的换行操作,还是键入最后一行的最后一个字符。如果 flag 是
False
,光标留在底线上。如果 flag 是True
,窗口向上滚动一行。请注意,为了在终端上获得物理滚动效果,还需要调用idlok()
.
- window.subpad(begin_y, begin_x)
- window.subpad(nlines, ncols, begin_y, begin_x)
返回一个子窗口,其左上角位于
(begin_y, begin_x)
,宽度/高度为 恩科斯 / 非线性 .
- window.subwin(begin_y, begin_x)
- window.subwin(nlines, ncols, begin_y, begin_x)
返回一个子窗口,其左上角位于
(begin_y, begin_x)
,宽度/高度为 恩科斯 / 非线性 .默认情况下,子窗口将从指定位置延伸到窗口的右下角。
- window.syncdown()
触摸窗口中在其任何祖先窗口中被触摸过的每个位置。此例程由调用
refresh()
,所以几乎不需要手动调用它。
- window.syncok(flag)
如果 flag 是
True
然后syncup()
每当窗口发生更改时自动调用。
- window.timeout(delay)
设置窗口的阻塞或非阻塞读取行为。如果 延迟 为负,使用阻塞读取(将无限期等待输入)。如果 延迟 为零,则使用非阻塞读取,并且
getch()
将返回-1
如果没有输入等待。如果 延迟 是肯定的,那么getch()
将阻止 延迟 毫秒,然后返回-1
如果在该时间结束时仍然没有输入。
- window.touchline(start, count[, changed])
假装 计数 行已更改,从行开始 开始 . 如果 改变 它指定受影响的行是否标记为已更改。( 改变
=True
)或不变( 改变=False
)
- window.untouchwin()
将窗口中的所有行标记为自上次调用以来未更改
refresh()
.
常量
这个 curses
模块定义以下数据成员:
- curses.ncurses_version
包含ncurses库版本的三个组件的命名元组: 专业 , 少数的 和 补丁 . 所有值都是整数。组件也可以按名称访问,因此
curses.ncurses_version[0]
等于curses.ncurses_version.major
等等。可用性:如果使用了ncurses库。
3.8 新版功能.
有些常量可用于指定字符单元属性。可用的确切常数取决于系统。
属性 |
意义 |
---|---|
|
交替字符集模式 |
|
闪烁模式 |
|
粗体模式 |
|
调暗模式 |
|
不可见或空白模式 |
|
斜体模式 |
|
正常属性 |
|
保护模式 |
|
反转背景色和前景色 |
|
突出模式 |
|
下划线模式 |
|
水平突出显示 |
|
左高亮 |
|
低光照 |
|
右高亮 |
|
顶部突出显示 |
|
垂直突出显示 |
|
提取字符的位掩码 |
3.7 新版功能: A_ITALIC
加入。
有几个常量可用于提取某些方法返回的相应属性。
位掩码 |
意义 |
---|---|
|
提取属性的位掩码 |
|
提取字符的位掩码 |
|
用于提取颜色对字段信息的位掩码 |
键由名称以开头的整数常量引用 KEY_
. 可用的确切键帽取决于系统。
密钥常数 |
键 |
---|---|
|
最小键值 |
|
断开键(不可靠) |
|
向下箭头 |
|
向上箭头 |
|
左箭头 |
|
右箭头 |
|
主页键(向上+左箭头) |
|
退格(不可靠) |
|
功能键。最多支持64个功能键。 |
|
功能键值 n |
|
删除行 |
|
插入行 |
|
删除字符 |
|
插入字符或进入插入模式 |
|
退出插入字符模式 |
|
清除屏幕 |
|
清除到屏幕末端 |
|
清除到行尾 |
|
向前滚动1行 |
|
向后滚动1行(后退) |
|
下一页 |
|
前一页 |
|
设置选项卡 |
|
清除标签 |
|
清除所有选项卡 |
|
输入或发送(不可靠) |
|
软(部分)复位(不可靠) |
|
重置或硬重置(不可靠) |
|
打印 |
|
Home Down或Bottom(左下) |
|
键盘左上角 |
|
键盘右上角 |
|
键盘中心 |
|
键盘左下角 |
|
键盘右下角 |
|
后标签 |
|
乞求(开始) |
|
取消 |
|
关闭 |
|
命令(命令) |
|
拷贝 |
|
创造 |
|
终点 |
|
出口 |
|
发现 |
|
帮助 |
|
作记号 |
|
消息 |
|
移动 |
|
接下来 |
|
正常开放 |
|
选项 |
|
前(前) |
|
重做 |
|
参考文献(参考文献) |
|
刷新 |
|
替换 |
|
重新启动 |
|
简历 |
|
保存 |
|
移位求(开始) |
|
移位取消 |
|
移位命令 |
|
移位拷贝 |
|
移位创建 |
|
移位删除字符 |
|
移位删除行 |
|
选择 |
|
移动端 |
|
移位清除线 |
|
换位出口 |
|
移位查找 |
|
转移帮助 |
|
搬家 |
|
移位输入 |
|
左移箭头 |
|
移位消息 |
|
移位移动 |
|
下一步 |
|
移位选项 |
|
移位前置 |
|
移印 |
|
移位重做 |
|
移位替换 |
|
右移箭头 |
|
转移简历 |
|
移位保存 |
|
移位挂起 |
|
移位撤销 |
|
暂停 |
|
撤消 |
|
鼠标事件已发生 |
|
终端调整大小事件 |
|
最大键值 |
在VT100及其软件仿真(如X终端仿真器)上,通常至少有四个功能键 (KEY_F1
, KEY_F2
, KEY_F3
, KEY_F4
)可用,箭头键映射到 KEY_UP
, KEY_DOWN
, KEY_LEFT
和 KEY_RIGHT
很明显。如果您的机器有一个PC键盘,则可以安全地使用箭头键和十二个功能键(较旧的PC键盘可能只有十个功能键);此外,以下键盘映射是标准的:
键帽 |
常数 |
---|---|
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码 |
意义 |
---|---|
|
右上角的替代名称 |
|
实心方形块 |
|
广场委员会 |
|
横线的替换名称 |
|
左上角的替换名称 |
|
Top T恤的备用名称 |
|
下三通 |
|
子弹 |
|
棋盘(点画) |
|
向下箭头 |
|
度数符号 |
|
钻石 |
|
大于或等于 |
|
水平线 |
|
灯笼符号 |
|
左箭头 |
|
小于或等于 |
|
左下角 |
|
右下角 |
|
左三通 |
|
不等号 |
|
字母PI |
|
正负号 |
|
大加号 |
|
右箭头 |
|
右三通 |
|
扫描线1 |
|
扫描线3 |
|
扫描线7 |
|
扫描线9 |
|
右下角的替代名称 |
|
竖线的替换名称 |
|
右T恤的替代名称 |
|
左下角的替换名称 |
|
底部三通的替代名称 |
|
左T恤的替代名称 |
|
交叉或Big Plus的备用名称 |
|
英镑 |
|
上三通 |
|
向上箭头 |
|
左上角 |
|
右上角 |
|
垂线 |
下表列出了预定义的颜色:
常数 |
颜色 |
---|---|
|
黑色 |
|
蓝色 |
|
青色(浅绿色蓝色) |
|
绿色 |
|
洋红(紫红色) |
|
红色 |
|
白色 |
|
黄色的 |