Sehr Umfangreiche Webseite zum Programmieren in C Perl CGI, Skripting, Linux, SystemprogrammierungPerl Perl Kurs Skripting Tk-Modul use Tk; Tcl/Tk bind Tk bind Steuerelement Perl Skript Tk-Modul Tk use Tk Perl mit dem Tk-Modul Teil 11

Steuerelemente - bind          zurück zum Inhaltsverzeichnis

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 (Linux/Unix):

Steuerelement bind Linux/Unix

So siehts aus (MS Windows):

Steuerelement bind MS Windows

Hier haben Sie 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 Sie praktisch die Variable $inp, also das Eingabe-Textfeld, mit dem Tastatur-Code RETURN. Wenn Sie also in dem Eingabenbereich die Taste ENTER betätigen geht es mit der Callback-Funktion input weiter. Natürlich gibt es auch hierzu unzählig viele 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