如何在tkinter中找出当前的小部件大小?

Den*_*aia 34 python tkinter

我正在使用PythonTkinter,我需要知道小部件的当前尺寸(宽度,高度).

我已经尝试了somewidget["width"],但它只返回一个固定值,并且每当窗口小部件大小改变时(例如调整窗口大小时)都不会更新.

Lie*_*yan 49

使用somewidget.winfo_width()somewidget.winfo_height()获取实际的窗口小部件大小,该somewidget['width']属性只是给几何管理器的提示.

  • 不要忘记在下面查看Apostolos的答案:) (3认同)

Apo*_*los 45

somewidget.winfo_width()并且somewidget.winfo_height()给出1.您需要tk.update()在获取这些值之前更新Tk(问题).

  • 那是最重要的,我浪费了很多时间调试这个 (3认同)

Jos*_*zca 10

您可以使用somewidget.winfo_reqheight()height 和somewidget.winfo_reqwidth()width函数,但首先不要忘记调用您想知道尺寸的小部件的更新函数somewidget.update()。如果您不调用更新函数,您将获得默认值1

  • 在顶层窗口上,没有 .update(),我只使用 .winfo_reqwidth 或 .winfo_reqheight() 我得到了小部件的大小。我使用Python 3.9 (2认同)