Before we get into all the options available for each of the Button widgets, let’s take a look at the most common ones.
When creating a Button, use the
-text
and -command
options. The
-text
option lets the user know what the Button is
for, and the -command
option makes something
happen when the user clicks the Button.
$b = $mw->Button(-text => 'Exit', -command => sub { exit; } )->pack; # Use the same sub for many Buttons $b = $mw->Button(-text => 'Red', -command => [\&change_color, 'red'])->pack; $b = $mw->Button(-text => 'Blue', -command => [\&change_color, 'blue'])->pack; $b = $mw->Button(-text => 'Green', -command => [\&change_color, 'green'])->pack;
When creating Checkbuttons, you use
-variable
in addition to -text
.
Using -variable
gives you an easy way to find out
whether the Checkbutton is checked. (You will rarely use
-command
with a Checkbutton):
$mw->Checkbutton(-text => 'Print Header', -variable => \$print_header); sub print_document { if ($print_header) { # Code to print header here... } }
The value stored in $print_header
is 1 or 0. A
simple test will tell you if the Checkbutton was checked.
When
creating Radiobuttons, we always create more than one and use the
-text
, -variable
, and
-value
options:
$group1 = 100; # set default value foreach (qw/1 10 100 10000 100000 1000000/) { $mw->Radiobutton(-text => '$' . $_, -variable => \$group1, -value => $_)->pack(-side => 'left'); } print "User selected: $group1";
The variable $group1
relates all of the
Radiobuttons, making it so the user can select only one at a time.
Each Radiobutton must be given a -value
to store
in $group1
(there is no default).
Get Mastering Perl/Tk 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.