将按键绑定到tcl / tk中的帧

时间:2016-03-04 02:18:56

标签: tcl tk

我到处寻找答案,所以我来到这里。问题很简单:为什么绑定按键(例如Escape)对帧不起作用?例如:

pack [frame .f]
bind .f <Escape> exit; #won't work

1 个答案:

答案 0 :(得分:1)

框架可以很好地处理关键事件,但通常不会,因为它们通常没有焦点,并且在您单击它们或使用 Tab 循环时不会默认使用它围绕着可以集​​中精力的事情。

最直接的解决方法就是:

focus .f

这会使键盘事件转到现在的框架。但是,您可能希望使用它,以便您可以点击聚焦:

bind .f <1> {focus %W}

这样小部件就会参与tab-traversal:

.f configure -takefocus 1

最后,当框架具有焦点时,框架不会显示任何内容,因为将其“高光厚度”配置为零宽度。让我们改变一下:

.f configure -highlightthickness 2

这应该是你所需要的(或者至少它在我测试时对我有用)。