python ttk treeview:如何选择并聚焦一行?

9 投票
5 回答
26364 浏览
提问于 2025-04-17 04:49

我有一个ttk.Treeview控件,里面有一些数据行。请问我该如何将焦点设置到某个特定的项目上,并且选中(高亮)它呢?

tree.focus_set()

这样做没有任何效果

tree.selection_set(0)

系统提示:找不到项目0,尽管这个控件里明显有不止一个项目。尝试项目1也没有好结果。

补充说明:要选中一个项目,首先要找到它的ID,然后使用tree.selection_set(id)。但是tree.focus(id)和tree.focus_set(id)似乎都没有任何作用。

5 个回答

3

我在寻找解决同样问题的时候,碰到了这个问题。

我发现了以下内容:

tree.selection_set(item) 是用来高亮显示某个项目的。

tree.focus(item) 或者 tree.focus_set(item) 是用来选择某个项目的。

3

注意:我没有使用过Python。

根据这个链接,focus方法可以带一个可选的参数item,这个方法应该可以高亮显示某个节点。

如果没有高亮显示,可以看看selectmode这个选项,把它设置为"browse"

14

获取你想要高亮或选择的树形视图项目的ID

child_id = tree.get_children()[-1] # for instance the last element in tuple

要高亮这个项目,可以同时使用 focus()selection_set(item_id)

tree.focus(child_id)
tree.selection_set(child_id)

撰写回答