如何重置 tkinter.Listbox 中的选择顺序?
How to reset selection order in tkinter.Listbox?
假设我有 window 列表框。将项目插入我的列表框后,我想用向下箭头键移动选择,按下它后我看到选择移动到列表中的最后一项。
为什么按下箭头选择列表中的最后一个元素而不是第二个?需要做什么才能恢复正确的选择顺序?
示例应用程序
from tkinter import *
root = Tk()
root.bind('<Escape>', lambda e: root.quit())
listbox = Listbox(root)
listbox.insert(END, *[i for i in range(20)])
listbox.pack()
listbox.focus()
listbox.selection_set(0)
# now, changing selection with down arrow key goes to last element on the list not second one
root.mainloop()
如果向下滚动,您会注意到最后一项已“激活”,您也需要激活第一项,因此:
listbox.selection_set(0)
listbox.activate(0)
假设我有 window 列表框。将项目插入我的列表框后,我想用向下箭头键移动选择,按下它后我看到选择移动到列表中的最后一项。
为什么按下箭头选择列表中的最后一个元素而不是第二个?需要做什么才能恢复正确的选择顺序?
示例应用程序
from tkinter import *
root = Tk()
root.bind('<Escape>', lambda e: root.quit())
listbox = Listbox(root)
listbox.insert(END, *[i for i in range(20)])
listbox.pack()
listbox.focus()
listbox.selection_set(0)
# now, changing selection with down arrow key goes to last element on the list not second one
root.mainloop()
如果向下滚动,您会注意到最后一项已“激活”,您也需要激活第一项,因此:
listbox.selection_set(0)
listbox.activate(0)