tkinter - 设置几何体而不显示窗口

时间:2009-02-24 23:32:57

标签: python tkinter

我正在尝试排列一些标签和画布小部件。为此,我需要知道我的标签盒有多宽。如果用户更改系统字体大小,我希望我的小部件自动调整,所以我不想硬编码每个字符12个像素。如果我测量标签小部件,它总是1像素宽。直到我调用.update(),然后我得到正确的值。但.update()在屏幕上放了一个带有我标签的窗口,当我最终打包最后的小部件时,窗口会消失。但是当我第一次放置小部件时,这会导致不受欢迎的闪光。

那么,如何在没有.update()的情况下测量标签小部件呢?或者我怎么能在没有在屏幕上显示的情况下更新()一个小部件?如果重要的话,我正在使用Python。

1 个答案:

答案 0 :(得分:1)

在调用update之前撤消窗口。你想要的命令是wm_withdraw

root = Tk()
root.wm_withdraw()
<your code here>
root.wm_deiconify()

但是,如果你真正的问题是排列小部件,你通常不需要知道小部件的大小。使用网格几何管理器。拿出一张方格纸,把你的小部件放在上面。随意为每个小部件跨越尽可能多的正方形。然后,该设计可以轻松转换为一系列网格调用。