Python 3.x 在Tkinter树视图中选择多个条目,而无需按ctrl键

Python 3.x 在Tkinter树视图中选择多个条目,而无需按ctrl键,python-3.x,python-2.7,tkinter,treeview,ttk,Python 3.x,Python 2.7,Tkinter,Treeview,Ttk,我正在尝试从Tkinter treeview中选择多个条目。我使用selectmode=extended作为sameuse ctrl+enter键。但是,只要我尝试在按下的树中打开新分支,我就无法打开,如果我不按ctrl键也这样做,我从分支1中选择的内容就会消失 因此,我试图找到一些其他的方法来从Tkinter树的不同分支中选择多个节点,而无需按ctrl键。i、 e记住我的鼠标选择、复选框或任何其他建议 下面是一个工作代码示例,它使用ctrl键在不同分支中进行多个选择,但我需要多个选择来选择不同

我正在尝试从Tkinter treeview中选择多个条目。我使用selectmode=extended作为sameuse ctrl+enter键。但是,只要我尝试在按下的树中打开新分支,我就无法打开,如果我不按ctrl键也这样做,我从分支1中选择的内容就会消失

因此,我试图找到一些其他的方法来从Tkinter树的不同分支中选择多个节点,而无需按ctrl键。i、 e记住我的鼠标选择、复选框或任何其他建议

下面是一个工作代码示例,它使用ctrl键在不同分支中进行多个选择,但我需要多个选择来选择不同分支中的节点,而无需按ctrl键,因为使用此选项,我无法在选择第一个分支后打开新分支,如果释放的节点打开,但选择消失。 代码:


预期:无需按ctrl键即可从不同分支选择多个节点。您需要做的第一件事是将selectmode设置为None:

从这里开始,您可以自己处理选择事件

现在修改select函数以对焦点更改作出反应:

def select(event=None):
    tree.selection_toggle(tree.focus())
    print tree.selection()
最后,使用鼠标单击将其绑定到您喜欢的键,如下所示:

tree.bind("<ButtonRelease-1>", select)

你的意思是你想通过点击来选择多个项目吗?@HenryYik我只想从不同的分支中选择多个项目,最好是通过复选框或简单的鼠标点击或任何合适的方式,就像我们在listbox中所做的那样。只是我不想一直按ctrl键进行选择,因为这样做不允许我在从已打开的分支进行选择后打开新分支。它正确地显示了您在树中分配的iid。insert,0,item1,text=Branch1,。您可以为iid和文本指定相同的名称。嘿@Henry Yik非常感谢先生,我完美地实现了我想要的一切,感谢您的支持。再次感谢你,我已将你的答案标记为正确答案
def select(event=None):
    tree.selection_toggle(tree.focus())
    print tree.selection()
tree.bind("<ButtonRelease-1>", select)