文字内容操作

输出文字内容是Curses库最大的目的之一,窗口与基板的创建也都是为文字内容的输出服务的。Curses提供了基于窗口和基板的内容控制函数。

.addscr()用于向窗口中输出文字内容,使用其参数可以定义输出位置和内容样式。其完整调用格式为.addscr([y, x], str[, attr])。其中用于描述输出位置的y、x两个参数与窗口位置相同,不再赘述。attr为要输出的文字内容的样式,常用来设定特殊格式和内容前景、背景颜色。

前面曾经使用curses.init_pair(序号, 前景颜色, 背景颜色)定义了若干颜色组,在输出内容时,可以使用curses.color_pair(序号)来调用前面定义过的颜色组。在定义颜色组时需要注意,颜色组0是Curses内置的黑白配色颜色组,是固定搭配,不能更改,所以颜色组的序号要从1开始定义。

Warning

需要注意的是,如果在窗口边界外输出内容,则会引发curses.error异常。

清除文字内容也是常用的操作之一,Curses库提供了以下几个函数来提供不同的清除功能。

函数功能
.erase()清除窗口内容
.clear()清除窗口内容,并触发重绘
.clearok(flag)如果给定参数为True,则在重绘时清空窗口内容
.clrtobot()清除从当前光标位置到窗口最后一行的全部内容
.clrtoeol()清除从当前光标位置到当前行末尾的全部内容