我正在用Python编写Tkinter GUI。它有一个用于在其下方搜索结果ListBox的条目。 ListBox还有一个滚动条。如何使用鼠标和箭头键滚动才能在ListBox中工作,而无需将焦点从搜索字段中移开? IE我希望用户能够键入搜索,滚动并继续键入,而无需在窗口小部件之间来回切换。感谢
答案 0 :(得分:5)
当用户按下向上或向下或使用向上/向下滚轮时,将绑定添加到调用列表框yview
和/或see
命令的条目小部件。
例如,您可以为箭头键执行以下操作:
class App(Tkinter.Tk):
def __init__(self):
Tkinter.Tk.__init__(self)
self.entry = Tkinter.Entry()
self.listbox = Tkinter.Listbox()
self.entry.pack(side="top", fill="x")
self.listbox.pack(side="top", fill="both", expand=True)
for i in range(100):
self.listbox.insert("end", "item %s" % i)
self.entry.bind("<Down>", self.OnEntryDown)
self.entry.bind("<Up>", self.OnEntryUp)
def OnEntryDown(self, event):
self.listbox.yview_scroll(1,"units")
def OnEntryUp(self, event):
self.listbox.yview_scroll(-1,"units")