这三个有什么区别?据我所知,它们都提供与curses绑定的功能,而curses是用于终端文本界面的C库。 我目前对这三个都没有了解,也从未使用过curses。你会推荐哪一个?我听说过无数次ncurses,但只在研究中一两次听说过CDK,从未听说过urwid(我想是这样的)。
根据一些参考资料,我得出的结论如下: ncurses:它是curses的免费软件版本,因此你需要处理各种低级细节。 pyCDK:它是一个提供一些小部件的高级库。我没有使用过这个,但根据sourceforge项目页面的描述,它已经长时间未被维护(至少是python的绑定),因此我不会选择这个。 urwid:我用过这个库,我必须说它仍然有点底层(它更像一个框架而不是一个小部件库),但仍然非常有用,比curses更加用户友好。作为一个UI框架,它具备所有您通常期望的功能,如小部件、事件和控制小部件布局的方法。在使用curses时可能会很困难的一些事情,在使用urwid时却很容易,如:当终端大小改变时重新绘制小部件和收集鼠标输入(例如点击按钮)。 因此,我的建议是使用urwid,如果它不能满足您的需求,则寻找其他替代方案。
我没有使用过这些库,但我猜你所说的是: Python内置的curses模块 pycdk,一个Python接口CDK urwid控制台UI库 它们只是不同的库,目标相同:为基于控制台的UI提供API。从以前的问题中可以看出,curses需要更多的底层样板。需要注意的一点是,Python的curses模块仅在Unix下可用;如果您在Windows上,则可能需要查看Fredrik Lundh编写的Console模块。 其他两个选择也很有前途,尽管从开发方面来看,urwid似乎更有组织,并且仍在积极开发中。
curses
没有我想要/需要的基础知识(小部件库、容器、布局、事件循环机制)。另一方面,urwid
确实具备了这些基础知识(小部件库、布局、事件循环机制),并且有非常好的示例、教程和文档,让您快速上手。 - Trevor Boyd Smith