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

lichtkind
 2006-05-13 22:53
#45417 #45417
User since
2004-03-22
5697 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
hier etwas code der wenigstens teilweise funktioniert vielleicht hilft es dir in einigen dingen klarer zu sehen.
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/perl -w

use strict;
use Wx;

MyApp->new->MainLoop;

package MyFrame;
use Wx qw[:everything];
use base 'Wx::Frame';

sub new {
my $class = shift;
my $frame = $class->SUPER::new( undef, -1, 'StopLoop', [-1, -1], [175, 150] );
$frame->{panel} = Wx::Panel->new( $frame, -1 );
$frame->{bt_start} = Wx::Button->new( $frame->{panel}, -1, 'starten', [-1, -1], [150, -1] );
$frame->{txt_status} = Wx::TextCtrl->new( $frame->{panel}, -1, "", [-1, -1], [150, -1] );
$frame->{bt_stop} = Wx::Button->new( $frame->{panel}, -1, 'abbrechen', [-1, -1], [150, -1] );
$frame->{sizer_2} = Wx::BoxSizer->new(wxVERTICAL);
$frame->{sizer_2}->Add($frame->{bt_start}, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 10);
$frame->{sizer_2}->Add($frame->{txt_status}, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 10);
$frame->{sizer_2}->Add($frame->{bt_stop}, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 10);
$frame->{panel}->SetSizer($frame->{sizer_2});

Wx::Event::EVT_BUTTON($frame, $frame->{bt_start}->GetId, \&starte_schleife);
Wx::Event::EVT_BUTTON($frame, $frame->{bt_stop}->GetId, \&abbrechen_schleife);

return $frame;
}

sub starte_schleife{
my $frm = shift;

for my $i(1..1000) {
$frm->{txt_status}->SetValue("$i. Schleifendurchlauf");
$frm->{txt_status}->Update;
}
}

sub abbrechen_schleife{
my $frm = shift;
$frm->Close(1);
}

package MyApp;
use base 'Wx::App';
sub OnInit { MyFrame->new->Show(1) }


was versuchst zu erreichen wird wahrscheinlich so nicht gehen. ich rate dir dich mit dem koncept der WxTimer und WxThreads (weiss nicht ob implementiert) vertraut zu machen, vielleicht gehts auch mit fork aber da sleep die berühmte gun ist, die direkt auf deinen fuss zielt, würd ich es zuerst mit den genannten versuchen.\n\n

<!--EDIT|lichtkind|1147549076-->
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.

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