【问题标题】:How to get tkinter treeview selected row values using keyboard?如何使用键盘获取 tkinter treeview 选定的行值?
【发布时间】:2016-04-24 00:16:32
【问题描述】:

基于answer to a previous question from another user,我能够在鼠标释放时为每一行获取正确的单元格值,并将该事件绑定到那里所述的 selectItem() 函数。

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

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

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

相反,当我按下 Up 或 Down 时,selectItem 函数正在打印 previous 选定的项目。我的意思是,如果我选择了第 3 行并按下 Up 键,我仍然会得到第 3 行,但我想要的是得到第 2 行。如果我按下 Down 键,我想要第 4 行,但我仍然得到的内容第 3 行。但是,蓝色行选择颜色正在正确更新。似乎计算机以某种方式开始“读取”当前选定的位置,然后向上或向下移动。但我希望它首先移动选择,然后只“读取”当前位置。完成此任务的最佳方法是什么?

【问题讨论】:

    标签: python python-3.x tkinter treeview key-bindings


    【解决方案1】:

    您可以改为绑定&lt;&lt;TreeviewSelect&gt;&gt;。绑定到&lt;&lt;TreeviewSelect&gt;&gt; 将让您在设置(树视图的)选择后获取项目。否则,绑定到小部件与小部件类上的绑定可以相互覆盖。

    【讨论】:

    • 就是这样!耶!我刚刚将绑定更改为 >,现在它可以按预期工作了! :-)
    猜你喜欢
    • 2015-08-17
    • 2021-10-01
    • 2013-05-13
    • 1970-01-01
    • 2020-12-01
    • 2015-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多