TreeView选项通过单击选择和取消选择?

时间:2016-03-17 18:44:56

标签: python python-3.x tkinter

我一直在寻找一个treeView小部件选项,我可以通过单击它一次只选择一行,然后再次单击它取消选择它。我找到了如何制作它,以便您一次只能选择一行,但我无法找到允许您单击所选行以取消选择它的选项。

有谁知道如何做到这一点?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

您可以设置自定义绑定以取消选择当前选中的项目。如果绑定返回字符串break,它将停止事件传播,从而阻止双击的默认行为。

...
self.tree = ttk.Treeview(...)
self.tree.bind("<1>", self.on_click)
...
def on_click(self, event):
    selection = self.tree.selection()
    item = self.tree.select_row(event.y)
    if item in selection:
        self.tree.selection_remove(item)
        return "break"

答案 1 :(得分:0)

Unfortunately,切换树视图项目选择状态的唯一内置模式是选择一个不同的项目,但你可以自己做一个黑客。