使用Python Urwid / NCurses在终端应用程序内创建水平和垂直可滚动表

时间:2012-03-20 15:11:53

标签: python ncurses urwid

我想创建一个终端应用程序,它显示一个包含大量列和行的表(不适合宽度和高度的常规屏幕)。
用户应该能够水平地在桌面上滚动(并且行应该是可选的),所以它的行为有点像htop。

我找不到任何提示如何使用urwid创建这样的小部件,大多数示例包装文本并且不允许水平滚动。

为了实现这种行为,我必须使用哪些urwid小部件/容器? 有什么好的例子可以做类似的事吗? 我使用最新版本的Urwid

很好

修改: 由于urwid不提供可水平滚动的列表框,我至少可以使用Python-ncurses创建这样的功能吗?

2 个答案:

答案 0 :(得分:4)

Ncurses有一个“垫”的概念。垫子就像一个窗口,但可能比屏幕大。然后,您可以在屏幕上显示打击垫的一小部分。请参阅python curses.newpad文档。

但是,由于垫是低级构造,您需要构建它周围的所有显示和导航内容。

答案 1 :(得分:0)

Python-urwid还不支持水平可滚动ListBoxes(afaik就是我需要的),这是相应的票证:

http://excess.org/urwid/ticket/9