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 :
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
© 2001,2002 Jürgen Wolf
|