该库旨在模拟原始ncurses库的语法和样式。如果你有兴趣学习使用curses风格编程设计TUI,则可以试试。
Urwid是一个非常有趣的库,从我阅读的少量文档来看,它使用事件循环(反应器模式)作为应用程序设计的基础,类似于Tkinter或Twisted。此外,urwid还具有专门为与Twisted一起使用而设计的事件循环类,因此如果您的目标是为网络创建TUI,则它是一个不错的选择。Twisted也使用反应器模式,因此如果您想学习那种风格,我建议选用它。
最后,如果您选择ncurses风格库,请查看Dan Gookin的ncurses书。这是一个非常好的资源,也是我知道的唯一一本今天还在印刷的书。
还有其他选择,例如newt、pygcurses等,但这应该足以让您入门。祝你好运!现在编写TUI程序是一种技术嗜好,可能不容易入手,但会带来收获。
虽然上面的方案对于 Linux 来说是完全合理的解决方案,但提问者要求其他建议和相应的理由。
谁想在像 Python 这样的现代面向对象语言中使用底层 API ,如 curses?更不用说如果你被困在 Windows 中(这并不适用于提问者,但却是许多人存在的问题)……肯定有更好的方法。
为了解决这个问题,我编写了一个简单的跨平台类,可以完成大多数人所需要的终端/控制台功能(是的,Windows 也包括在内,而且不需要回退到 PDcurses)。如果您正在使用 Linux,则这是一种更加人性化的编程 curses 的方式。如果您正在使用 Windows,则同样的类可以直接使用,无需外部二进制依赖项。您可以在 asciimatics 中找到 Screen 类。
此外,我还创建了许多高级对象来创建动画和 TUI 界面。例如,这是使用 TUI 按钮的示例录制:
如果您需要额外的功能,请告诉我,我会尽力而为。