2011-12-01 68 views
24

这3个有什么区别?据我了解,它们都提供绑定到curses这是基于终端文本的UI的C库。Python ncurses,CDK,urwid差异

我目前还没有任何3的知识,我从来没有使用诅咒。你会推荐哪一个?我听说过很多次,但只有一次或两次关于CDK(通过研究),从未听说过urwid(我认为)。

回答

25

什么看一些参考资料后,我得到的是:

  • ncurses:这是诅咒的自由软件版本,所以你必须处理所有类型的低级细节。
  • pyCDK:这是一个更高层次的库,提供了一些小部件。我没有使用过这个,但根据sourceforge项目页面,它已经很久没有维护了(至少是python绑定),所以我不会用这个。
  • urwid:我用这一个,我一直说这还是有点低的水平(这更是一个比一个部件库框架),但仍然非常有用和多用户友好比诅咒。作为一个UI框架,它拥有你通常期望的所有东西,如小部件,事件和控制小部件布局的方法。我想说的一些事情很难curses,但urwid很容易:当终端调整大小并收集鼠标输入(例如,单击按钮)时重绘您的小部件。

所以我的建议是使用urwid,如果它不符合您的需求寻找其他的选择。

+2

此外,Urwid处理Unicode输入摆好,其中有许多其他的控制台API不。 –

+0

我用了几个小部件的工具包,如C++的Qt4,的Java Swing/AWT,C#.NET,Python的传统知识......所有这些的共同点:小部件库,集装箱持有的其他部件,布局,事件循环/异步机制。包含'curses'的python没有我想要的基础知识(小部件,容器,布局,事件循环机制库)。 |||另一方面'urwid'确实具有基础知识(小部件库,布局,事件循环机制)。并有非常好的示例,教程和文档,以便您快速启动。 –

3

我没有使用任何的库,但我假设你指的是:

他们只是用相同的目标不同的库:提供基于控制台的用户界面的API。从previous question看来,curses需要更多的低级别样板。有一点需要注意的是,Python的curses模块仅在Unix下可用;如果您使用的是Windows,您可能需要查看Fredrik Lundh编写的Console模块。

两个其他的选择似乎有前途的为好,虽然看起来urwid尽可能发展进入更加有组织的,并仍在积极有所发展。