是否可以跟踪 urwid.ListBox
对象中突出显示项目的变化?或者甚至通过 ListWalker
对象?
我想在用户使用箭头键 [🠉]
、 [🠋]
从一个项目移动到另一个项目时调用回调,而不是当用户在一个项目上点击 [Enter]
时。
最佳答案
经过一些研究和实验,可以通过将 modified
信号注册到 ListWalker
对象来做到这一点。
import urwid
def callback():
index = str(listBox.get_focus()[1])
debug.set_text("Index of selected item: " + index)
debug = urwid.Text("Debug")
captions = "A B C D E F".split()
items = [urwid.Button(caption) for caption in captions]
walker = urwid.SimpleListWalker(items)
listBox = urwid.ListBox(walker)
urwid.connect_signal(walker, "modified", callback)
frame = urwid.Frame(body=listBox, header=debug)
urwid.MainLoop(frame).run()
引用:Urwid > Signal functions > connect
关于python - urwid 中是否有焦点改变事件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43123841/