我很难理解如何取消绑定事件。
我知道基本解除你自己的绑定
bind .c <Up> {magic code}
bind .c <Up> {}
我真的想知道如何从预绑定小部件中删除绑定。
示例文本小部件带有向上移动的向上键,我该如何删除它? 因此,当用户点击密钥时,没有任何事情发生。
有没有办法从小部件中删除所有绑定? (没有粒子理由只是想知道。)
而且我读到这应该有用,解除单绑定
bind all <Up> {}
(&#34; Up&#34;是OS X的向上箭头键)
但对我来说没有。 :(
对不起,如果这看起来像一个愚蠢的问题,但绑定最近一直在绊倒我。先感谢您。
答案 0 :(得分:5)
Tk具有不同的绑定类(称为“bindtags”),它将其绑定到。默认情况下,每个小部件都包含:
Button
,画布为Canvas
)。这些通常留给Tk的默认值;从这里删除内容可能会破坏代码的其他部分。all
。它们可以处理一些“逆止器”,但通常不会使用。每个绑定标签最多只能使用一个绑定; Tk更喜欢使用最具体的一个。
从一个绑定标签中删除绑定并不意味着不会处理该事件;另一个绑定标签上的绑定可能仍会接收它。试图破解其他绑定标签以欺骗代码并不会令人满意。但是,如果一个标记上的绑定以break
结束,则会阻止进一步尝试绑定标记;它提前终止处理。这样可以轻松屏蔽特定事件:
bind .c <Up> break
Tk在其内部的几个地方使用这种掩蔽技巧......