Python TUI库

lll*_*kke 8 python curses tui urwid

我正在Linux中使用python和TUI编写一个小数独游戏/解算器(不是GUI,这只是蹩脚)只是为了好玩.我的问题是,哪个lib更好(我的意思是更容易处理,更好的支持,更直接和可理解),选择是诅咒urwid或者如果有人有更好的建议,为什么?我有一些Tkinter和wxPython经验.

任何帮助或信息将不胜感激.

Cha*_*azu 9

您可能想要查看Unicurses,它包装UNIX系统中的python核心curses模块,并在基于Windows的计算机上包装免费的pdcurses库.

该库旨在模拟原始ncurses库的语法和样式,因此如果您对使用curses样式编程学习TUI设计感兴趣,请查看它.

Urwid,从我读过的小文档,是一个非常有趣的库,它使用事件循环(反应器模式)作为应用程序设计的基础,就像tkinter或Twisted一样.此外,urwid还有一个专门设计用于Twisted的事件循环类,因此如果您的目标是创建用于网络的TUI,那么它是一个不错的选择.Twisted也使用反应器模式,所以如果你想学习那种风格,我会推荐它.

最后,如果你选择了ncurses风格的图书馆,请查看Dan Gookin关于ncurses的书.这是一个非常好的资源,也是我所知道的唯一一个今天印刷的资源.

还有其他选项,如newt,pygcurses等,但这应该让你开始.祝你好运,今天的TUI编程是那些难以闯入的技术狂欢之一,但它是有益的.


Pet*_*ain 5

虽然以上是一个非常合理的Linux解决方案,但OP要求提供其他建议和理由.

谁想在像Python这样的现代OO语言中使用像curses这样的低级API?如果你被困在Windows内部(OP不是,但对很多人来说是一个问题),更别说了......必须有更好的方法.

为了解决这个问题,我已经整理了一个简单的跨平台类(是 - 包含Windows而不回退到PDcurses)来完成大多数人想要的终端/控制台.如果你在Linux上,这是一种更人性化的诅咒编程方式.如果您使用的是Windows,那么同一个类的工作原理就是没有外部二进制依赖项.您可以在https://github.com/peterbrittain/asciimatics中找到Screen类.

另外,我创建了一大堆高级对象来创建动画和TUI.例如,这是使用TUI小部件记录的示例:

文本UI小部件

如果你需要一个额外的功能,让我知道,我会看到我能做什么.