Thread [Tk] configure Entry
(7 answers)
Opened by MicHen at 2017-02-28 09:21
Das ist im Prinzip richtig so.
Ich kannte dieses validate noch gar nicht, aber es scheint ja ganz praktisch zu sein. Der MainLoop springt dann also bei jeder Eingabe einmal in die check-Funktion (und wieder hinaus, da will er natürlich gern eine Rückmeldung haben). Ich persönlich würde mir den Inhalt des Entries erst dann mit "->get()" holen, wenn ich ihn brauche. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #!/usr/bin/perl use warnings; use strict; use Tk; use utf8; my($Test, $Laenge, $Meldung) = ""; my $mw = MainWindow->new(); my $ent = $mw->Entry(-validate => 'key', -validatecommand => \&check, -foreground => "black", -background => "white"); $ent->focus(); $ent->pack(-side=>'top', -padx => 20, -pady => 20); MainLoop(); sub check { my $Test = $ent->get(); if(length($Test)>1) { $ent->configure(-foreground => 'red'); } else { $ent->configure(-foreground => 'black'); } return 1; } |