这是关于在 Python 中使用curses
库进行文本绘制的系列教程的第三部分(也是最后一部分)。
- 装饰窗口:可使用
window.box()
和window.border(…)
函数用自定义值或默认“框”装饰窗口,如创建 5×5 红色窗口并在每次按键时交替显示和清除边框。此代码在 SSH 连接中运行,屏幕会自动清除,边框会裁剪窗口内部,window.border(…)
函数中的任何字符都可用于边框。代码通过等待按键来控制,按下Q或Shift+Q可退出程序,注意按箭头键可能会跳过迭代。 - 更新窗口内容:与传统图形窗口程序类似,
curses
窗口的文本内容可更改,更改前需先清除旧内容。示例展示了一个居中的数字时钟,使用 Python 列表存储数字和符号的大版本,通过putChar(…)
函数将字符映射到对应的列表并显示在窗口中。代码首先检查终端窗口大小是否足够,然后创建多个子窗口显示时钟的各个部分,通过datetime
模块获取当前时间并更新窗口内容。在非阻塞模式下,使用hoursLeftWindow.nodelay(True)
使窗口非阻塞,通过getch()
函数获取按键,根据按键情况更新时钟。退出时使用putChar(…)
函数在每个窗口中打印空白字符来清理屏幕,并将窗口对象设置为None
。 - 进一步探索:此三部分介绍仅触及
curses
模块的表面,有了这个基础,即使对于新手开发者,创建基于文本的 Python 应用程序的健壮用户界面也变得可行。curses
模块提供了移动、调整大小和补偿终端窗口大小变化的机制,甚至复杂的基于文本的游戏也可使用该模块或其底层ncurses
C/C++库实现。ncurses
模块的完整文档可在 Python 文档的“curses — Terminal handling for character-cell displays”部分找到,由于 Pythoncurses
模块使用的语法与底层ncurses
C/C++库“足够接近”,也可参考这些库的手册页和参考资源获取更多信息。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。