顾名思义,yview_scroll只改变视图,而不改变选择。
就像用select_set(0)选择第一个对象一样,也可以使用select_set来选择其他对象。保留选定对象的引用,并在按下按钮时使用该引用选择下一个或上一个对象。只需确保所选内容不低于0或超过列表框的大小。
代码示例:def body(self, master):
self.e1 = tk.Listbox(master, selectmode=tk.SINGLE, height = 3, exportselection=0)
self.e1.insert(tk.END, "1")
self.e1.insert(tk.END, "2")
self.e1.grid(row=0, column=1)
self.selection = 0
self.e1.select_set(self.selection)
self.e1.bind("", self.OnEntryDown)
self.e1.bind("", self.OnEntryUp)
def OnEntryDown(self, event):
if self.selection < self.e1.size()-1:
self.e1.select_clear(self.selection)
self.selection += 1
self.e1.select_set(self.selection)
def OnEntryUp(self, event):
if self.selection > 0:
self.e1.select_clear(self.selection)
self.selection -= 1
self.e1.select_set(self.selection)