GUI mit Perl/Tk

Perl/Tk-Tutorial

Kapitel 4: Steuerelement - Entry

Jetzt verwenden Sie das Steuerelement Entry zur Eingabe von Text. Dieses Steuerelement ist ein kleines einzeiliges Eingabefeld, das Tastatureingaben aufnimmt. Ein Beispielprogramm dazu:

eingabefeld.pl

#!/usr/bin/perl

use strict;
use warnings;
use Tk;

my $fenster = MainWindow->new();
$fenster->Entry()
        ->pack();

$fenster->MainLoop();

So sieht das Ergebnis aus:

tk4.png

Die Methode Entry bedarf in diesem Beispiel wohl keiner Erklärung. Nun will man aber auch mal eine Eingabe verarbeiten. Dazu werden Sie alle drei bisher kennen gelernten Steuerelemente (Label, Button und Entry) in einem Programm verwenden:

namen_eingeben.pl

#!/usr/bin/perl

use strict;
use warnings;
use Tk;

my $fenster   = MainWindow->new();
my $text      = $fenster->Label(
    -text     => 'Bitte geben sie Ihren Namen ein:',
    -height   =>  5,
    -width    => 40,
);
my $eingabe   = $fenster->Entry();

my $schalter  = $fenster->Button(
    -text    => 'OK',
    -height  => 1,
    -width   => 4,
    -command => \&eingabe_bearbeiten,
);
my $schalter2 = $fenster->Button(
    -text    => 'Ende',
    -height  => 1,
    -width   => 4,
    -command => sub { exit(0); },
);

$text     ->pack();
$eingabe  ->pack();
$schalter ->pack();
$schalter2->pack();

$fenster->MainLoop();

sub eingabe_bearbeiten {
    print "Hallo " . $eingabe->get , "\n";
    $eingabe->delete(0, 'end');
}

So sieht das Ergebnis aus:

Eingabefeld für einen Namen

Ich habe das Programm wieder so einfach wie nur möglich gehalten. Neu dürfte Ihnen der Button OK sein. Speziell die Option

-command => \&eingabe_bearbeiten

Hier sehen Sie nun eine Möglichkeit wie Sie Unterfunktionen aus den Steuerelementen aufrufen können. Im Fachjargon haben wir eine Callback-Funktion eingerichtet. Die Übersetzung ins Deutsche erklärt schon den Sinn dieser Funktion. Die Funktion wird aufgerufen und anschließend abgearbeitet und kehrt dann wieder zurück. Sie werden im Verlaufe dieses Tutorials noch mehr mit Callback-Funktionen zu tun haben.

In unserem Fall wird die Funktion eingabe_bearbeiten aufgerufen, die auf der Konsole ausgibt was Sie in dem Fenster eingegeben haben und den Inhalt des Entry-Widgets im Fenster wieder löscht.

Mehr zum Steuerelement Entry finden Sie auf der Widget-Seite zum Entry.

Aufgaben

Statt die Eingabe auf der Konsole auszugeben hätten Sie diese auch schon in einem (zusätzlichen) Label ausgeben können, stimmt's? Das dürfen Sie gern probieren, bevor Sie hier fortfahren.

Top