如何使用键盘获取 tkinter treeview 选定的行值?

How to get tkinter treeview selected row values using keyboard?

基于 ,我能够在鼠标释放时获得每行的正确单元格值,并将该事件绑定到 selectItem() 函数,如那里所述。

def selectItem(self, event):
    curItem = self.tree.focus()
    print(curItem)

我还尝试为 Up/Down 键添加键盘绑定,但我没有得到实际选择的行。

self.tree.bind('<ButtonRelease-1>', self.selectItem)
enter code here`self.tree.bind('<Up>', self.selectItem) 
self.tree.bind('<Down>', self.selectItem) 

相反,当我按向上或向下键时,selectItem 函数正在打印 上一个 所选项目。我的意思是,如果我选择了第 3 行并按向上键,我仍然得到第 3 行,但我想要的是得到第 2 行。如果我按向下键,我想要第 4 行,但我仍然得到的内容第 3 行。但是,蓝色行选择颜色正在正确更新。似乎计算机以某种方式从 "reading" 当前选定的位置开始,然后向上或向下移动。但我希望它先移动选择,然后只移动 "read" 当时的当前位置。实现此目标的最佳方法是什么?

您可以改为绑定 <<TreeviewSelect>>。绑定到 <<TreeviewSelect>> 将使您在设置(树视图的)选择后获得该项目。否则,绑定到小部件与小部件上的绑定 class 可以相互覆盖。