我正在尝试使我的列表框突出显示第一个对象(这与发生self.e1.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.e1.select_set(0)
self.e1.bind("<Down>", self.OnEntryDown)
self.e1.bind("<Up>", self.OnEntryUp)
def OnEntryDown(self, event):
self.e1.yview_scroll(1, "units")
def OnEntryUp(self, event):
self.e1.yview_scroll(-1, "units")
谢谢!
顾名思义,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("<Down>", self.OnEntryDown)
self.e1.bind("<Up>", 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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句