Python Urwid:如何选择整行而不是一列?

Python Urwid:如何选择整行而不是一列?,python,urwid,Python,Urwid,我正在四处编码,当我按下向上或向下箭头时,我不知道如何选择整行。由于列小部件不支持多选,您需要使用自己的容器小部件(它可以基于列和重定义的渲染方法),或者仅使用文本,例如: def __init__ (self, id, description): self.content = 'item %s: %s...' % (str(id), description[:25]) self.item = urwid.AttrWrap( urwid.Text('item %s

我正在四处编码,当我按下向上或向下箭头时,我不知道如何选择整行。

由于
小部件不支持多选,您需要使用自己的容器小部件(它可以基于
和重定义的
渲染
方法),或者仅使用文本,例如:

def __init__ (self, id, description):
    self.content = 'item %s: %s...' % (str(id), description[:25])
    self.item = urwid.AttrWrap(
        urwid.Text('item %s: %s' % (id, description)), 'body', 'focus'
        )
    super(ItemWidget, self).__init__(self.item)
很好。
此外,如果您需要填充,您可以使用字符串格式模拟它。

СПббб:)ГГГΓгзззззЯЯЯЯж:))以下的英文版本,可能对其他人有帮助。为什么要使用
ItemWidget
而不是
WidgetWrap
Columns
?没有真正的原因,
ItemWidget
在原始示例中使用。我没有注意到它。。。另外,如何将前景和背景不同的单词放在同一行上?我认为它应该是不同的
urwid.WidgetWrap
对象,但是如何像这样放置它们呢?以及如何动态更改
urwid.WidgetWrap
的样式?我知道urwid.Text.set_Text(),但这不是我需要的。但事实证明,您没有使用
urwid.Columns
。。。为什么?链接断了。