1

我正在尝试构建一个界面作为控制台应用程序的一部分,该应用程序读取输出文件并将其部分内容显示在窗口中(垂直拆分)作为可滚动列表。The user should be able to choose items from this list, which when selected show up in the adjacent window. 然后切换到此相邻窗口并选择项目应将其删除。当用户点击“Q”或其他适当的按键时,界面应该退出,然后主程序可以使用这些选项进行进一步处理。

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

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

urwid.MainLoop(urwid.Columns([listbox1, listbox2])).run()

然后我得到:

AttributeError:“listbox1”对象没有属性“行”

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

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

4

0 回答 0