python ttk treeview:如何选择并聚焦一行?
我有一个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)