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).
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.
somewidget.winfo_width()
and somewidget.winfo_height()
give 1. You need to update Tk (issue tk.update()
) before getting these values.
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
.
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).
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.
somewidget.winfo_width()
and somewidget.winfo_height()
give 1. You need to update Tk (issue tk.update()
) before getting these values.
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
.