我有一个画布,我想在画布的 scrollregion 发生变化时运行一个函数。
查看绑定事件的文档,它将属性列为事件类型,并将其定义如下:
每当更改或删除属于该窗口的X属性时,都会将属性事件发送到窗口。属性事件通常不会传递给Tk应用程序,因为它们由Tk核心处理。
听起来就像我想要的那样,但这是我能在任何地方找到的最多......
这是什么东西,你如何使用它?
自己尝试:
canvas.bind("<Property-scrollregion>", lambda e: print("Scrollregion has changed! ", e))
引发错误,指出 scrollregion 不是属性。
canvas.bind("<Property>", lambda e: print("Something changed. ", e))
对我迄今为止尝试的任何事情都没有反应。
注意: Property 事件是否可以或应该用于上述任务是一个没有实际意义的点,我主要想填写文档中的这个漏洞。
答案 0 :(得分:0)
我已经使用了tk和tkinter近20年了,我从来没有需要过这个事件。从tk仅在基于X-windows(又名X11)的系统上工作时,这是一个遗留问题,并且今天不太相关。
注意定义如何具体说明“X属性”。这里的“X”指的是X窗口系统,X property是一个非常具体的东西,比如窗口颜色图。虽然这是真的少数X属性名称映射到窗口小部件属性名称(例如,FONT),它们与窗口小部件属性不同。
最重要的是,它没有按照你的想法做到。当窗口小部件的属性发生更改时,它不能用于通知您。