作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下显示数字列表并突出显示当前焦点项目的代码片段:
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
按钮, View 将变为:
1
2
3
4 <-- highlighted
...
我想要一种行为,其中 0-3
在屏幕向下滚动之前突出显示并处于焦点中。实现此目标的最佳方法是什么?
最佳答案
接受的解决方案在第一次按键时失败:
AttributeError: 'SelectableText' object has no attribute 'keypress'
注入(inject)我自己的不执行任何操作的实现会使错误消失,但它也会完全破坏所有键绑定(bind)。
我发现了这个,它似乎工作得很好:
class SelectableText(urwid.Edit):
def valid_char(self, ch):
return False
关于python - Urwid 列表框 : How to get fluid focus movement?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8097183/
我是一名优秀的程序员,十分优秀!