将按键绑定到 tcl/tk 中的帧
Binding a keypress to a frame in tcl/tk
我到处找答案,所以我来了。问题很简单:为什么绑定按键(例如 Escape)在框架上不起作用?示例:
pack [frame .f]
bind .f <Escape> exit; #won't work
框架可以很好地处理按键事件,但通常不会,因为它们通常没有焦点,并且在您单击它们或使用 Tab[= 时默认情况下不会获取焦点29=] 围绕可聚焦的事物循环。
最直接的解决方法就是:
focus .f
这使得键盘事件现在 进入框架。但是,您可能想使用它以便点击聚焦:
bind .f <1> {focus %W}
这使得小部件参与选项卡遍历:
.f configure -takefocus 1
最后,框架在获得焦点时不会显示任何东西,因为将它们的“高亮厚度”配置为零宽度。让我们改变一下:
.f configure -highlightthickness 2
这应该就是您所需要的(或者至少在我测试时对我有用)。
我到处找答案,所以我来了。问题很简单:为什么绑定按键(例如 Escape)在框架上不起作用?示例:
pack [frame .f]
bind .f <Escape> exit; #won't work
框架可以很好地处理按键事件,但通常不会,因为它们通常没有焦点,并且在您单击它们或使用 Tab[= 时默认情况下不会获取焦点29=] 围绕可聚焦的事物循环。
最直接的解决方法就是:
focus .f
这使得键盘事件现在 进入框架。但是,您可能想使用它以便点击聚焦:
bind .f <1> {focus %W}
这使得小部件参与选项卡遍历:
.f configure -takefocus 1
最后,框架在获得焦点时不会显示任何东西,因为将它们的“高亮厚度”配置为零宽度。让我们改变一下:
.f configure -highlightthickness 2
这应该就是您所需要的(或者至少在我测试时对我有用)。