如何重置 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)