Tkinter Treeview 不能编辑多于一列

Tkinter Treeview cannot edit more that one column

我使用一个 Tkinter TreeView,我用文件中的数据填充。

结果是每行预填 6 列数字数据。 一些行只有一个列值,其他行有多个填充数据的列,可由用户编辑(鼠标右键单击)。

对于具有单个可编辑列的行,我使用以下代码:

...
self.tree.insert(id2 , 2,    text=key2.strip('\r\n'), \
  values=("","","10","","",""), \
  tags=('','','tag3','','',''))
  self.tree.tag_bind(('','','tag3','','',''), '<Button-3>', self.popupEntry)
...

结果:(正常) 如果右键单击然后弹出带有文本输入的对话框,验证后,对应行的列成功填充了新值。这适用于任何单值元组 "tags".

但是,对于多于一个可编辑列的行,我修改了之前的代码如下:

...
self.tree.insert(id2 , 2,    text=key2.strip('\r\n'), \
  values=("","","10","","","10"), \
  tags=('','','tag3','','','tag6'))
  self.tree.tag_bind(('','','tag3','','','tag6'), '<Button-3>', self.popupEntry)
...

结果:(不正常) 鼠标右键无反应,无任何反应

期望的行为: - 对于具有 2 个或更多可编辑列的行,右键单击以生成包含 2 个文本条目的对话框,验证后,将填充 2 个列值。

类似的东西:

弹窗代码:

   def popupEntry(self, event):
        result = tkSimpleDialog.askinteger("New value", "Please enter a new numeric value")
        if result:
            self.tree.item(self.tree.focus(), values=self.tag_to_val(self.tree.item(self.tree.focus(), 'tags'), result))

你不能像这样绑定到一组标签。您必须为每个单独的标签创建一个绑定。