Thread Textaktualisierung über Widget-Grenzen (3 answers)
Opened by peri at 2009-11-20 12:57

peri
 2009-11-20 12:57
#128366 #128366
User since
2009-02-06
12 Artikel
BenutzerIn

user image
Hi all,
ich möchte über die Callback-Fkt eines Buttons eine Funktion ausführen, die diverse Jobs erledigt, die etwas Zeit in Anspruch nehmen. Um den interessierten Benutzer zwischendurch mal zu sagen, was da gerade abgeht, möchte ich ein Textfeld (Label) immer mal wieder aktualisieren.
Mein Problem ist, dass dies erst am Ende der Callback-Fkt erfolgt. Wie löst man so was?
Mein Code:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use strict;
use Tk;

my $mw = MainWindow->new();
my $button = $mw->Button(-text        => "do it",
                         -command     => \&callback  );
my $var = "Waiting ...";
my $lab = $mw->Label(-textvariable   => \$var);
$lab->pack();
$button->pack();

MainLoop;

sub callback {
   $var = "INFO: step 1, please wait ...\n";
   $lab->configure(-textvariable => \$var);
sleep 2;
   $var = "INFO: step 2, please wait ...\n";
   $lab->configure(-textvariable => \$var);
sleep 2;
}

View full thread Textaktualisierung über Widget-Grenzen