当鼠标指针悬停在对象上时,我想将对象绑定为高亮显示。
.c bind $object <Enter> [list %W itemconfigure $object -width 4]
但是当鼠标指针离开它时,如何自动将其更改为前一阶段?
答案 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]]
}