我需要使用URWID实现一个功能,如果我按一个键,比如 c ,焦点应该下降到该页面的最底部。在这里,页面只是ListBox
。这个' ListBox'使用 down 或 page down 键操作太长了(想想这就像一个页面,需要很长时间才能到达最底层的页面,如果它有很多行)
1)我可以使用'按键'来访问按下的键。访问密钥后,如何更改焦点?
我找到了焦点位置'功能内部'按键'。我很难使用此功能将焦点更改为所需位置。
参考: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'位置没有小部件”。
思想?
答案 0 :(得分:0)
class MyListBox(urwid.ListBox):
def keypress(self, size, key):
if key == 'u':
self.set_focus(0)
key = None
elif key == 'd':
self.set_focus(len(self.body) - 1)
key = None
return key
以上代码正常运行。谢谢。