yml フォーム ファイルを読み込んで、その内容を urwid の列として取得しています。これらの列をコンソールに表示する必要があります。プレーンなリストボックスとリストウォーカーを使用すると、画面に表示される列を取得できます。ただし、いくつかの列をブロックとしてグループ化し、それをラインボックス ウィジェットに表示する必要があります。どうすればそうできますか?
私の列ウィジェットにはそれぞれ 2 つの列があり、最初の列はテキスト ウィジェットで、2 番目の列は編集ウィジェットです。これは私が試したものです:
以下のように、blockPile (blockPile = urwid.Pile([ ]) として宣言) という名前のパイルに追加することにより、列のパイルを作成しようとしました:
blockPile.contents.append(columnEntry, options='pack')
しかし、このエラーが発生しました
TypeError: append() got an unexpected keyword argument 'options'
次にオプションを削除し、これを使用しました:
blockPile.contents.append(columnEntry)
しかし、次のエラーが発生しました
urwid.container.PileError: added content invalid: <Columns selectable box/flow widget>
次にリストボックスを使用しました
blockContent = urwid.SimpleListWalker([])
blockListbox = urwid.ListBox(blockContent)リストボックス内の列に合わせて追加を使用しました
blockContent.append(columnEntry)
最後にリストボックスをボックスアダプターに入れる
box = urwid.BoxAdapter(blockContent, height = 20)
そしてそれをラインボックスに返します
return urwid.LineBox(box, title='|** Block **|')
しかし、今は次のエラーが発生します
AttributeError: 'SimpleListWalker' object has no attribute 'selectable'
リストボックスとリストウォーカーのみを使用し、リストボックスを他のものに合わせない場合、すべてが正常に機能します。しかし、列のリストボックスをラインボックスに入れたいです。どうすればそうできますか?