You can use the following methods to find out the size of a widget in several different ways.
geometry method returns the geometry string for
the widget in the form of
$geom = $widget->geometry;
The geometry string was discussed in detail in Chapter 11. Geometry values are typically specified in
pixels. An exception is a child widget that uses characters as its
normal units, such as a Text or Listbox, with
1 specified. In this case, the window manager forces a
geometry in integral lines and characters.
reqheight method returns the height of the widget:
$height = $widget->reqheight;
reqwidth method returns the width of the widget:
$width = $widget->reqwidth;
To get the
width of the widget as it currently is drawn, use the
$cur_width = $widget->width;
When the widget is first created,
return a 1 until the application has finished drawing everything.
After that, it will return the actual width of the widget.
To get the
current height, use the
$h = $widget->height;
Just like the
height returns a 1 when the widget is first
created. You can use the
afterIdle method to force everything else to
happen and then call
width to get the finished values.