Geometry Managers
Creating widgets and determining how to display them are done with separate
commands. You can create a widget with one of the widget
creation methods (such as Button
, Canvas
, etc.),
but you display them using a geometry manager.
The three geometry managers are pack
, grid
,
and place
. pack
is by far the most commonly used.
You can either pack a widget as you create it, or you can create the widget object and pack it separately. For example, the previous “Hello World!” example might have read:
#!/usr/bin/perl -w use Tk; my $mw = MainWindow->new; $button = $mw->Button(-text => "Hello World!", -command =>sub{exit}); $button->pack; MainLoop;
The pack Geometry Manager
With the pack
geometry manager, widgets cannot overlap or
cover each other, either partially or completely. Once a
widget is packed into a window, the next widget is packed
in the remaining space around it.
pack
sets up an “allocation rectangle” for each widget,
determined by the dimensions of the parent window and the
positioning of the widgets already packed into it.
This means that the order
in which you pack your widgets is very important.
By default, pack
places widgets at the top center of the
allocation rectangle. However, you can use options to pack
to
control where a widget is placed and how much padding is placed around it.
Options for pack
are:
-
-side =>
side
Puts the widget against the specified side of the window. Values for
side
are'left'
,'right'
,'top'
, and'bottom'
. The default is'top' ...
Get Perl in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.