栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

python gui事件乱序

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python gui事件乱序

绑定就是这样工作的(这是一件好事),但是您的问题很容易解决。

绑定按窗口小部件绑定标签(也称为绑定标签或bindtags)指定的顺序触发。除非另有说明,否则绑定将按以下顺序进行:

  1. 如果直接在窗口小部件上有绑定,它将在其他任何绑定之前触发。
  2. 如果小部件的类上有绑定,则下一步将其触发
  3. 如果在包含该窗口小部件的顶级窗口小部件上存在绑定,则将其触发(注意:在此上下文中,根窗口被视为顶层窗口)
  4. 如果对“全部”有约束力,它将在下一个触发。

可以通过事件处理程序之一在任何时候停止该序列,但是在此特定讨论之外。

在默认情况下,您的绑定

<Key>
发生在类绑定之前,并且实际上是将文本实际插入到小部件中的类绑定。这就是为什么绑定似乎总是落后一个字符的原因。

通常,这种情况的顺序是完全正确的,因为更具体的绑定有机会覆盖默认行为。如果不是这种方式,即使您不想要它,也总是会得到默认行为。当您想增加默认绑定而不是替换默认绑定时,这并不是您总是想要的。

您可以交换绑定标签的顺序,以便首先进行类绑定。或者,向您的文本小部件添加一个附加的绑定标签,并在类绑定之后按顺序添加它,然后进行绑定。通常,添加绑定标记是更好的解决方案,但并非总是如此。

要更改绑定标签,您可以执行以下操作:

self.inputText.bindtags(((str(self.inputText)), "Text", "post-insert", ".", "all"))

要绑定到“插入后”,请使用bind_class方法:

self.inputText.bind_class("post-insert", "<Key>", self.translate)

看起来似乎很奇怪,但是绑定标签是最强大的绑定机制之一。它们使您可以完全而完全地控制绑定的顺序,而使用任何其他工具包则要困难得多。

顺便说一句,不要忘了,如果您将所有字符都放在文本小部件的末尾,那么末尾总会有一个额外的换行符。转到

end-1c
,或从文本中删除一个换行符。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/651530.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号