tcl / tk treeview - 获取被点击的节点的id

时间:2018-03-18 17:56:28

标签: tcl tk

在这个示例程序中,我可以获得各种信息,但是有一种简单的方法可以知道被点击的行的id吗?

#! /usr/bin/env wish

ttk::treeview .tree -selectmode none

.tree tag bind clickable <ButtonRelease> {
  puts "%W %X %Y %K %b %d %A %K"
}

.tree configure -height 2

.tree insert {} end -id A -text A -tags clickable
.tree insert {} end -id B -text B -tags clickable

pack .tree

enter image description here

输出:

$ ./row-click.tcl 
.tree 894 407 ?? 1 ?? ?? ??
.tree 894 407 ?? 1 ?? ?? ??
.tree 893 431 ?? 1 ?? ?? ??

1 个答案:

答案 0 :(得分:2)

命令.tree identify item $x $y其中$x$y就是坐标。在绑定脚本中,树名最好指定为%W,坐标为%x%y(与小部件本身相关的坐标):

#! /usr/bin/env wish

ttk::treeview .tree -selectmode none

.tree tag bind clickable <ButtonRelease> {
  puts [%W identify item %x %y]
}

.tree configure -height 2

.tree insert {} end -id A -text A -tags clickable
.tree insert {} end -id B -text B -tags clickable

pack .tree