Python ncurses,CDK,urwid的区别

时间:2011-12-01 22:16:18

标签: python ncurses curses urwid

这3个有什么区别?据我所知,它们都提供了对curses的绑定,这是基于终端文本的UI的C库。

我目前对3中的任何一个都不了解,而且我从未使用过诅咒。你会推荐哪一个?我听过很多次ncurses,但只听过一次或两次CDK(通过研究),从未听说过urwid(我认为)。

2 个答案:

答案 0 :(得分:30)

在查看一些参考资料后我得到的是:

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

所以我的建议是使用urwid,如果它不符合您的需求,请寻找其他替代方案。

答案 1 :(得分:3)

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

它们只是具有相同目标的不同库:为基于控制台的UI提供API。从previous question开始,似乎curses需要更多的低级样板。需要注意的一点是,Python的curses模块仅在Unix下可用;如果您使用的是Windows,则可能需要查看Fredrik Lundh撰写的Console模块。

其他两种选择看起来都很有希望,尽管urwid看起来更有条理,就发展而言,并且仍在积极发展。