0

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

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

财产

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

听起来正是我想要的,但这是我在任何地方都能找到的关于这个主题的大部分内容......

这是什么东西,你如何使用它?


我自己的实验:

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

    抛出一个错误,说scrollregion不是一个属性。

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

    对我迄今为止尝试过的任何事情都没有反应。

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

4

1 回答 1

0

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

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

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

于 2013-07-12T11:09:33.483 回答