这是一个关于 Python curses
库的编程教程系列的第二部分。
- 创建“Hello, World!”应用程序:通过一系列
curses
初始化操作,如curses.initscr()
、curses.noecho()
等,在终端显示“Hello, World!”消息,并展示了如何获取终端的行数和列数来进行文本定位,还提到了若字符串长度超出终端宽度可能会引发异常,以及stdscr.refresh()
用于将文本绘制到屏幕上,stdscr.getch()
用于获取键盘输入。 - 使用
curses
进行文本定位:ncurses
使用零索引的网格系统(X
和Y
值)来定位屏幕上的元素,curses.COLS
和curses.LINES
分别表示终端的最大列数和行数。代码中通过不同的坐标位置来显示文本,注意终端宽度必须是整数,光标位置不能是小数。 - 绘制或放置文本:
stdscr.refresh()
实际将文本绘制到屏幕上,若要在已有文本位置放置其他文本,需再次调用该函数,且若新文本长度不足以覆盖现有文本,需添加空格。stdscr.addstr(…)
一般不会覆盖现有文本。 - 用户输入和
curses
:stdscr.getch()
与curses.cbreak()
、curses.curs_set(False)
和curses.noecho()
配合使用,curses.cbreak()
使无需按回车键即可获取键盘输入,curses.noecho()
防止输入值被回显到终端,curses.curs_set(False)
隐藏闪烁光标,以免干扰用户。 - 窗口和
curses
:通过使用curses.window
对象和curses
模块中的颜色定义,在终端创建三个随机大小的窗口,并为每个窗口设置背景颜色和添加文本。curses.newwin(…)
函数用于创建窗口,其参数分别为行数、列数、左上角的列位置和行位置,且所有参数均为非负整数。窗口内的文本必须完全 fit 在窗口内,若超出边界可能引发异常,且文本换行行为可能在不同的ncurses
实现中不一致。curses
模块以颜色对的形式处理颜色,每个颜色对包含前景色和背景色,以保证文本和窗口背景颜色匹配。
总之,这部分教程介绍了 curses
的基本用法,包括文本显示、定位、用户输入处理和窗口创建等方面,为后续关于窗口内容的讨论做铺垫。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。