ein Kapitel zurück                                           ein Kapitel weiter

Um Benutzerergebnisse abzufragen gibt es 'bind'. Ein häufiges Beispiel wäre z.B. bei einer Eingabe in einer Textbox (Entry) die ENTER-Taste...

#!/usr/bin/perl -w

use strict;
use Tk;

my $eingabe = "Passwortabfrage";

my $window= MainWindow->new();

my $f1=$window->Frame()->pack(-side => 'top');
my $f2=$window->Frame(-relief => 'sunken', -borderwidth => '10')
                              ->pack(-side => 'top');

my $f3=$window->Frame()->pack(-side => 'top');
my $f4=$window->Frame(-relief => 'groove', -borderwidth => '10')
                              ->pack(-side => 'top');

my $text = $f1->Label(-text => 'Passwort eingeben (Pinguine) : ')->pack();
my $inp = $f2->Entry()->pack();
my $out = $f3->Label(-textvariable => \$eingabe)->pack();

$inp->bind('<Return>',  \&input); #reagiert auf die Taste ENTER

#Funtkion überprüft das Passwort auf Pinguin
sub input {
 if($inp->get() eq "Pinguine"){
    $eingabe="Passwort richtig";
    $inp->delete(0,100);
    my $schalter=$f4->
            Button(-text => "Weiter", -command => sub {exit 0})->pack();
    }
 else{
    $eingabe="Passwort falsch";
    $inp->delete(0,100);
  }
}

MainLoop;



So siehts aus :

bind Tk und Perl

Hier haben wir eine einfache Passwortabfrage. Bei Eingabe des richtigen Passwortes (Pinguine) erscheint der Button zum Weitermachen. Uns interessiert in diesem Beispiel aber..........

$inp->bind('<Return>', \&input)  

Damit Verknüpfen wir praktisch die Variable $inp also das Eingabe-Textfeld mit dem Tastatur-Code ENTER. Wenn wir also in dem Eingabenbereich ENTER betätigen geht es mit der Callback-Funktion input weiter. Natürlich gibt es auch hierzu unzählige Bindings. Hier einige Möglichkeiten......

  • Control = <Control-Button-1>
  • Shift = <Shift-Button-2>
  • Lock = <Lock-c>
  • Alt = <Alt-x>
  • Button-1 -5 = Die Mausbuttons
  • Double = Es muss etwas 2x passieren. Z.B. Doppelclick

Mehr hierzu findet man unter man Tk::bind

ein Kapitel zurück          nach oben           ein Kapitel weiter


© 2001,2002 Jürgen Wolf