urwid中的多个ListBox列

时间:2017-01-07 20:25:11

标签: python listbox urwid

我正在尝试构建一个接口作为控制台应用程序的一部分,该应用程序读取输出文件并在窗口中显示其内容的一部分(垂直拆分)作为可滚动列表。用户应该能够从该列表中选择项目,这些项目在选中时显示在相邻窗口中。切换到此相邻窗口并选择项目应该删除它们。当用户点击“Q”或其他一些适当的按键时,界面应退出,然后主程序可以选择进一步处理。

我正在尝试使用urwid构建它。我可以将结果显示在ListBox小部件中,但是当我尝试在Columns小部件中包装它和ListBox小部件的单独实例时,程序会在调用mainloop时抛出错误。基本上,这样的事情:

listbox1 = urwid.ListBox(urwid.SimpleListWalker[<lines>])
listbox2 = urwid.ListBox(urwid.SimpleListWalker[])

urwid.MainLoop(urwid.Columns([listbox1, listbox2])).run()
然后我得到:

AttributeError:'listbox1'对象没有属性'rows'

我猜是因为它是一个'flow'样式窗口小部件,它没有指定的行数,并且由于Columns对象将是顶级窗口小部件,因为无法确定渲染的整体大小而导致渲染失败屏幕?如果是这样,解决这个问题的最佳方法是什么?

编辑:可以简单地将列对象包装在Frame中而不调用页眉或页脚并获得所需的输出。

0 个答案:

没有答案