Thread "Abbruch" Funktion in wxPerl-Programm: Button "abbrechen" wird ignoriert (13 answers)
Opened by Christian at 2006-05-11 22:16

Christian
 2006-05-14 15:03
#45421 #45421
User since
2003-08-05
29 Artikel
BenutzerIn
[default_avatar]
Unter TK funktionert es mit:

Code: (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
#!/usr/bin/perl -w
use Tk;
use strict;

my ($status, $abbruch);

my $Form2 = MainWindow->new;
$Form2->title("StoppLoop");
$Form2->geometry("200x140+8+8");

my $bt_start = $Form2->Button( -text => "starten", -command => \&starte_schleife )->pack(-pady=>10, -padx=>10);
my $txt_status = $Form2->Entry( -textvariable => \$status, -width => '150')->pack(-pady=>10, -padx=>10);
my $bt_stop = $Form2->Button( -text => "stoppen", -command => \sub{$abbruch=1} )->pack(-pady=>10, -padx=>10);

MainLoop;

sub starte_schleife{
undef($abbruch);

for my $i(1..10000){
$status = ($abbruch)?"Abbruch durch Benutzer" : "$i. Schleifendurchgang";
$Form2->update;
$i=10000 if defined $abbruch;
}
}


Wollt aber eigentlich langsam hin zu Wx da einige Widgets unter Windows ein etwas Windows-konformeres Verhalten haben.

WxThreads funktioniert übrigens ab Perl 5.8 und WxPerl 0.26. Hab nur leider auf den meisten Systemen noch 5.6 im Einsatz und ein Upgrade wär nicht so einfach.
Ich weiss aber auch noch nicht wie ich das Problem mit Threads lösen könnte, denn eine Schleife müßt ich dann noch immer abbrechen - oder?

Ich hoffte eigentlich, dass es eine Funktion ala "GetLastEvent" oder "Update::GUI::Events" gibt und ich diese bislang übersehen habe. :-)

View full thread "Abbruch" Funktion in wxPerl-Programm: Button "abbrechen" wird ignoriert