Python ncurses、CDK、urwid 的区别
这三者有什么区别呢?根据我的理解,它们都是用来和curses这个C语言库连接的,curses是用来创建基于终端的文本用户界面的。
我现在对这三者都没有了解,也从来没有使用过curses。你会推荐哪一个呢?我听说过ncurses很多次,但只在研究中听说过一两次CDK,urwid我好像从来没听说过。
2 个回答
38
根据我查阅的一些资料,以下是我的总结:
- ncurses:这是一个免费的 curses 软件版本,你需要处理很多底层的细节。
- pyCDK:这是一个更高级的库,提供了一些小部件。我没有使用过这个,但根据 SourceForge 项目的页面来看,它已经很长时间没有维护了(至少 Python 的部分),所以我不建议使用这个。
- urwid:我用过这个,得说它还是有点底层(更像是一个框架而不是小部件库),但比 curses 更有用,也更容易上手。作为一个用户界面框架,它有你通常期待的所有东西,比如小部件、事件和控制小部件布局的方法。有些事情在
curses
中比较难,但在urwid
中就简单多了,比如当终端大小改变时重新绘制小部件,以及获取鼠标输入(比如点击按钮)。
所以我推荐使用 urwid
,如果它不能满足你的需求,再去找其他的替代方案。