To show what the Button will do when it is
pressed, set its text string with the -text
or
-textvariable
option. The descriptive text string
should be short and simple.
The -text
option is the more common way to assign
a text string:
-text => 'Submit'
The string can be anything: alphanumeric,
newline(s), or variables. The text string is just like any other
string in Perl in that if it is put in single quotes, it is taken
literally; if it is put in double quotes, it is interpolated. The
interpolation only happens once (the first time the option is
parsed). If a variable changes later in the program, it has no effect
on the text in the Button. The only way the text in the Button can be
changed after it has been created is by using the
configure
method to reset it (e.g.,
$button->configure(-text => "newtext");
) or
by using the -textvariable
option.
There is no default for the -text
option; if no
text is specified, the Button will simply have no text.
The
other way to display text on the Button is by using the
-textvariable
option. The
-textvariable
option allows a scalar variable to
be associated with the Button; anything in the variable will be
displayed on the Button. Specify the scalar variable as follows:
-textvariable => \$variable
This means the text of the Button will change as the contents of
$variable
change. When the text within the Button
changes, the Button may become larger or smaller, and the entire
window may change size.
This piece of code shows how the
-textvariable
option is used:
$count = 0; $mw->Button(-text => "Add 1", -command => sub { $count++ })->pack(-side => 'left'); $mw->Button(-textvariable => \$count)->pack(-side => 'left'); $mw->Button(-text => "Exit", -command => sub { exit })->pack(-side => 'left');
Figure 4-6 shows two windows. The first shows how
the window looks when it is first created, and the second shows what
it looks like after clicking the “Add 1” Button fifteen
times. Even though we don’t show any specific examples using
the -textvariable
option for the Checkbutton and
Radiobutton widgets, the option works exactly the same way.
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.