Tcl 如何将鼠标移动到所有缩放小部件?

Tcl 如何将鼠标移动到所有缩放小部件?,tcl,scale,ttk,Tcl,Scale,Ttk,我正在TCL TK上开发一个表单生成器。 我会将鼠标移动绑定到所有缩放小部件 我生成一个缩放小部件: grid [ttk::scale .frm.fgs_$name -length $length -from -100 -to 100 ] -column 2 -row $row -sticky w 我尝试了不起作用的绑定: bind Scale <B1-Motion> {puts "Scale: %W"} bind Scale{put“Scale:%W”} (另外,事件不起作用

我正在TCL TK上开发一个表单生成器。 我会将鼠标移动绑定到所有缩放小部件

我生成一个缩放小部件:

grid [ttk::scale .frm.fgs_$name -length $length -from -100 -to 100 ] -column 2 -row $row -sticky w
我尝试了不起作用的绑定:

bind Scale <B1-Motion> {puts "Scale: %W"}
bind Scale{put“Scale:%W”}

(另外,
事件不起作用。

这是一个对我有效的例子:

bind   .c <Motion> {displayXY .info %x %y}

一般来说,绑定到小部件类是很棘手的,因为它会影响该小部件的所有用户,包括库代码中的用户。不建议这样做,至少对现有的小部件类不建议这样做。(相比之下,如果您正在创建自己的小部件类,那么这样做是一个非常好的主意。)对于普通用户代码,最好绑定到小部件名称:

bind .frm.fgs_$name <B1-Motion> {puts "Scale: %W"}
bind.frm.fgs_$name{puts“比例:%W”}
或绑定到新的绑定标记并安装:

# You're advised to begin custom binding tags with a lower-case letter
bind myScale <B1-Motion> {puts "Scale: %W"}
# Install after the instance-level bindings but before the class-level bindings
bindtags .frm.fgs_$name [linsert [bindtags .frm.fgs_$name] 1 myScale]
#建议您以小写字母开始自定义绑定标记
绑定myScale{puts“Scale:%W”}
#在实例级绑定之后但在类级绑定之前安装
bindtags.frm.fgs_$name[linsert[bindtags.frm.fgs_$name]1 myScale]

您眼前的问题是
ttk::scale
使用类名
TScale
。它还有一个现有的
绑定

# You're advised to begin custom binding tags with a lower-case letter
bind myScale <B1-Motion> {puts "Scale: %W"}
# Install after the instance-level bindings but before the class-level bindings
bindtags .frm.fgs_$name [linsert [bindtags .frm.fgs_$name] 1 myScale]