How to find out the current widget size in tkinter?

Question:

I’m using Python and Tkinter, and I need to know the current dimensions (width, height) of a widget.

I’ve tried somewidget["width"], but it returns only a fixed value, and is not updated whenever the widget size changes (e.g. when the window is resized).

Asked By: Denilson Sá Maia

||

Answers:

Use somewidget.winfo_width() and somewidget.winfo_height() to get the actual widget size, the somewidget['width'] property is only a hint given to the geometry manager.

Answered By: Lie Ryan

somewidget.winfo_width() and somewidget.winfo_height() give 1. You need to update Tk (issue tk.update()) before getting these values.

Answered By: Apostolos

You can use the function somewidget.winfo_reqheight() for height and somewidget.winfo_reqwidth() for width, but first don’t forget to call the update function of the widget you want to know the dimension somewidget.update(). If you do not call the update function you will get the default value 1.

Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.