如何在tcl / tk中使用鼠标指针突出显示对象?

时间:2014-10-28 06:24:09

标签: tcl tk

当鼠标指针悬停在对象上时,我想将对象绑定为高亮显示。

  .c bind $object <Enter> [list %W itemconfigure $object -width 4]

但是当鼠标指针离开它时,如何自动将其更改为前一阶段?

2 个答案:

答案 0 :(得分:1)

您可以绑定<Leave>事件以撤消更改:

.c bind $object <Leave> [list %W itemconfigure $object -width 1]

如果你有各种线宽的对象,那么你需要在某处存储前一个宽度或用适当的宽度绑定<Leave>事件:

.c bind $object <Enter> [subst {
    %W bind <Leave> [list %W itemconfigure $object -width [%W itemcget -width]]
    %W itemconfigure $object -width 4
}]

答案 1 :(得分:0)

您可以多次调用此子例程来终止此操作:

proc highlightView {object} {
  .c bind $object <Enter> [list %W itemconfigure $object -width 4]
  .c bind $object <Leave> [list %W itemconfigure $object -width [.c itemcget $object -width]]
}

您可以使用选项-fill更改颜色以突出显示对象:

 proc highlightView {object} {
  .c bind $object <Enter> [list %W itemconfigure $object -fill red]
  .c bind $object <Leave> [list %W itemconfigure $object -fill [.c itemcget $object -fill]]
}