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

时间:2013-07-12 03:41:12

标签: python events tkinter tk

我有一个画布,我想在画布的 scrollregion 发生变化时运行一个函数。

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

  

Property

     
    

每当更改或删除属于该窗口的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 事件是否可以或应该用于上述任务是一个没有实际意义的点,我主要想填写文档中的这个漏洞。

1 个答案:

答案 0 :(得分:0)

我已经使用了tk和tkinter近20年了,我从来没有需要过这个事件。从tk仅在基于X-windows(又名X11​​)的系统上工作时,这是一个遗留问题,并且今天不太相关。

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

最重要的是,它没有按照你的想法做到。当窗口小部件的属性发生更改时,它不能用于通知您。