当我绑定()一个回调时,我遇到了一些奇怪的行为
我正用于包含图像的标签上的<Configure>
我希望调整大小,因为它调整了包含Toplevel的大小。
根据文档,<Configure>
回调
应该在用户调整窗口大小时调用
(即Toplevel)。我发现回调是
没有用户交互就被调用。事实上,它似乎是
当我从处理程序中更新图像时调用
响应调整大小,这导致一个烦人的循环
当用户移动(!)窗口时结束。每次通话都有
event.width
和/或event.height
稍大或稍小,
取决于我如何调整图像大小。几乎就好像
我拨打电话来设置新图像
(Label.configure(image={newImage})
)正在触发
回调,但这没有任何意义。
我已经尝试用pdb跟踪它,但我找到的只是一个来电 来自Tkinter.Tk.mainloop(),但没有指出导致它的原因。 我也尝试用一个小的演示来复制它 程序(我可以在这里包括),但不能,所以我希望 有人可能至少能够回答这个问题:
除了用户交互(或我自己的任何显式调用)
什么可能导致调用<Configure>
回调?
感谢。
答案 0 :(得分:1)
只要窗口小部件的大小发生变化,就会触发`事件。它并不局限于交互式大小调整。如果您的绑定更改了窗口小部件的大小,则将再次生成该事件。
根据official tcl/tk documentation:
配置事件的大小,发送到窗口, 位置或边框宽度更改,有时更改时 在堆叠顺序中的位置。