Python curses,第 2 部分:如何创建一个支持 Python curses 的应用程序

这是一个关于 Python curses 库的编程教程系列的第二部分。

  • 创建“Hello, World!”应用程序:通过一系列 curses 初始化操作,如 curses.initscr()curses.noecho() 等,在终端显示“Hello, World!”消息,并展示了如何获取终端的行数和列数来进行文本定位,还提到了若字符串长度超出终端宽度可能会引发异常,以及 stdscr.refresh() 用于将文本绘制到屏幕上,stdscr.getch() 用于获取键盘输入。
  • 使用curses进行文本定位ncurses 使用零索引的网格系统(XY值)来定位屏幕上的元素,curses.COLScurses.LINES分别表示终端的最大列数和行数。代码中通过不同的坐标位置来显示文本,注意终端宽度必须是整数,光标位置不能是小数。
  • 绘制或放置文本stdscr.refresh() 实际将文本绘制到屏幕上,若要在已有文本位置放置其他文本,需再次调用该函数,且若新文本长度不足以覆盖现有文本,需添加空格。stdscr.addstr(…) 一般不会覆盖现有文本。
  • 用户输入和cursesstdscr.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 的基本用法,包括文本显示、定位、用户输入处理和窗口创建等方面,为后续关于窗口内容的讨论做铺垫。

阅读 9
0 条评论