我有一个使用ttk.Treeview
文件系统树内容填充的实例的简单脚本。我想在单击(叶)项目时执行某个操作,所以我配置了一个处理程序,如下所示:
self.tree.tag_bind('#entry', '<1>', self.onClick)
在该方法中onClick
,我只是打印出被点击的项目,如下所示:
def onClick(self, event):
item_id = str(self.tree.focus())
print 'Selected item was %s' % item_id
item = self.tree.item(item_id)
flag = '#another_tag' in item['tags']
print ' flag = %s' % flag
我发现这些消息比点击次数滞后一倍。所以我的第一次点击得到一个随机值(看起来像树的根),然后第 n 次点击打印出被点击的第 (n-1) 个项目的值。
它们是这样插入的:
tree.insert(parent_id, 'end', id, text=id, tags=['#entry'])
任何人都知道这是 Tkinter 中的错误还是我做错了什么?
这似乎是 Ubuntu Natty 和 OS X Lion 上的一个问题(使用 Python 和 Tkinter 的默认预安装版本)