我有一个简单的脚本,使用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)