0
我使用Tkinter TreeView,我填充文件中的数据。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)
...
结果:(OK) 如果点击右键,然后对话框弹出与文本输入,在验证,列他对应的行是,成功填写新值。这适用于任何单个值元组“标签”。
但是,对于更多的是一个可编辑的列行我修改以前的代码如下:
...
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))
感谢布赖恩,我也用这里的答案:[链接](http://stackoverflow.com/questions/29467437/tkinter-parent-to-child-data-exchange)使用子窗口更新这两个值。 – AJN 2015-04-07 07:59:07