In der Perl/Tk-Distribution enthalten ist Tk::Entry für Eingabefelder. Entrys entsprechen in etwa dem HTML-Element <input>
, sind aber etwas mächtiger.
Eine Variable kann mittels der Option -textvariable
an das Entry gekoppelt werden. Verändert sich der Wert, wird die Anzeige auf der GUI aktualisiert. Andersherum genauso: wird in der GUI etwas im Entry geschrieben, enthält die Variable diesen Wert.
#!perl
use strict;
use warnings;
use Tk;
my $mw = MainWindow->new();
my $entry = $mw->Entry()->pack();
my $button = $mw->Button(
-text => 'Print entry value',
-command => sub{
my $entry_value = $entry->get();
printf("Entry value: '%s'\n", $entry_value);
},
)->pack();
$mw->MainLoop();
exit(0);
#!perl
use strict;
use warnings;
use utf8;
use Tk;
# Creates an entry that you can type in.
# focus puts the cursor in the entry,
# and the button clears it
my $mw = tkinit();
my $name = 'bound to entry';
my $label = $mw->Label(
-text => 'Enter:',
)->grid(
-row => 0,
-column => 0,
);
my $entry = $mw->Entry(
-textvariable => \$name
)->grid(
-row => 0,
-column => 1,
);
my $button = $mw->Button(
-text => 'Clear',
-command => sub{
$name = '';
},
)->grid(
-row => 2,
-column => 0,
-columnspan => 2,
);
$mw->MainLoop();