Thread [Tk] configure Entry (7 answers)
Opened by MicHen at 2017-02-28 09:21

hlubenow
 2017-04-15 21:06
#186350 #186350
User since
2009-02-22
837 articles
BenutzerIn
[default_avatar]
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;
}

View full thread [Tk] configure Entry