У меня есть следующий фрагмент кода, который показывает список чисел и выделяет элемент, находящийся в фокусе:
import urwid
palette = [('header', 'white', 'black'),
('reveal focus', 'black', 'dark cyan', 'standout'),]
items = map(lambda x: urwid.Text(`x`), range(500))
items = map(lambda x: urwid.AttrMap(x, None, 'reveal focus'), items)
walker = urwid.SimpleListWalker(items)
listbox = urwid.ListBox(walker)
loop = urwid.MainLoop(listbox, palette)
loop.run()
Когда я запускаю программу, терминал выглядит следующим образом:
0 <-- highlighted
1
2
3
...
Если я нажму кнопку down
, вид изменится на:
1
2
3
4 <-- highlighted
...
Мне бы хотелось поведение, при котором 0-3
подсвечивается и фокусируется, прежде чем экран прокручивается вниз.Каков наилучший способ сделать это?