如何使用键盘获取 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 可以相互覆盖。
基于
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 可以相互覆盖。