我需要使用 URWID 实现一个功能,如果我按下一个键,比如说c,焦点应该会下降到该页面的最底部。在这里, page 只不过是一个ListBox
. 这个'ListBox'太长了,不能用down或page down键来操作(把它想象成一个页面,如果它有很多行,它需要很长时间才能到达页面的最底部)
1)我可以使用'keypress'访问按下的键。访问密钥后,如何改变焦点?
我在“keypress”中找到了“focus_position”功能。我很难使用此功能将焦点更改为所需位置。
参考:http ://urwid.org/reference/widget.html
编辑:
我尝试了以下代码。但它不起作用。
if key is "c":
position = self.focus_position
self.focus_position = position + 10
编辑2:
def keypress(self, size, key):
key = super(MyListBox, self).keypress(size, key)
if key is "c":
pos = self.focus_position
if pos > 100:
pos = 0
self.focus_position = 0
self.focus_position = pos + 5
上面代码的问题是,这不稳定。在多次按下“c”键说“在位置 xxx 处没有小部件”后,它会终止程序。
想法?