什么是 tk/tkinter 事件类型"Property"以及如何使用它?



我有一个画布,每当画布的滚动区域发生变化时,我都想运行一个函数。

查看绑定事件的文档,它将Property列为事件类型,并将其定义如下:

属性

每当属于某个窗口的X属性被更改或删除时,就会向该窗口发送"属性"事件。属性事件通常不会传递给Tk应用程序,因为它们由Tk核心处理。

听起来正是我想要的,但这是我在任何地方都能找到的关于这个主题的最多的。。。

这个东西是什么?你是怎么用的?


我自己实验:

  • canvas.bind("<Property-scrollregion>", lambda e: print("Scrollregion has changed! ", e))

    抛出一个错误,表示滚动区域不是属性。

  • canvas.bind("<Property>", lambda e: print("Something changed. ", e))

    到目前为止,我对任何尝试都没有反应。

注意:Property事件是否是我可以或应该实际用于上述任务的,这是一个悬而未决的问题,我主要想填补文档中的这个漏洞。

我已经使用tk和tkinter将近20年了,我从未需要过那个事件。这是tk只在基于X-windows(又名X11)的系统上工作时遗留下来的,在今天已经不太重要了。

注意这个定义是如何具体地说"X属性"的。这里的"X"指的是X窗口系统,而X属性是一个非常具体的东西,比如窗口颜色映射。虽然确实有少量的X属性名称映射到小部件属性名称(例如FONT),但它们与小部件属性不是一回事。

底线是它不会做你认为它会做的事。当小部件的属性发生更改时,它不能用来通知您。

相关内容

最新更新