如何在tkinter中获取当前小部件大小?

67 投票
3 回答
98604 浏览
提问于 2025-04-16 05:36

我正在使用 PythonTkinter,我想知道一个控件当前的尺寸(宽度和高度)。

我试过用 somewidget["width"],但是它只返回一个固定的值,当控件的大小发生变化时(比如窗口被调整大小时),这个值并不会更新。

3 个回答

16

你可以使用函数 somewidget.winfo_reqheight() 来获取高度,使用 somewidget.winfo_reqwidth() 来获取宽度。不过,记得先调用你想要知道尺寸的那个控件的更新函数 somewidget.update()。如果不调用这个更新函数,你得到的值会是默认的 1

93

somewidget.winfo_width()somewidget.winfo_height() 这两个方法会返回1。你需要先更新一下Tk(使用 tk.update()),然后再获取这些值。

81

使用 somewidget.winfo_width()somewidget.winfo_height() 可以获取实际的控件大小,而 somewidget['width'] 这个属性只是给布局管理器的一个提示。

撰写回答