【发布时间】:2011-10-08 18:03:46
【问题描述】:
我有一个 GUI 布局,它对屏幕大小有两个依赖项:行号和制表符大小。但是,当屏幕调整大小时,我必须手动更新 winfo_height() 和 winfo_width() 以通过直接调用来更改布局。网上搜了一下觉得应该用update_idletasks,但是这个方法到底是怎么用的呢?
【问题讨论】:
我有一个 GUI 布局,它对屏幕大小有两个依赖项:行号和制表符大小。但是,当屏幕调整大小时,我必须手动更新 winfo_height() 和 winfo_width() 以通过直接调用来更改布局。网上搜了一下觉得应该用update_idletasks,但是这个方法到底是怎么用的呢?
【问题讨论】:
update_idletasks 仅运行任何挂起的“空闲”任务,例如屏幕重绘。
我认为没有任何方法可以在屏幕分辨率发生变化时获得通知,这是您要找的吗?
【讨论】:
<Configure> 事件来在窗口调整大小时收到通知。除了调整大小之外,它也会因其他原因触发,因此您可能需要忽略所有这些原因,除非您注意到大小发生变化。
<Configure> 事件调整大小,则测试框架的简单条件就可以了。