Thread [Wx] EventHandler aktiv nur wenn PopUpMenü geöffnet ist (10 answers)
Opened by XimPerl at 2011-12-16 02:41

XimPerl
 2011-12-19 16:46
#154950 #154950
User since
2011-10-12
6 Artikel
BenutzerIn
[default_avatar]
Und so funktionierts.
Vielen Dank

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# Parse ein XML Document
use XML::Simple;
my $xml = new XML::Simple;
my $doc = $xml->XMLin("file.xml");
                
# Zähle Anzahl Einträge
my $rowCount=0;
foreach my $key (keys (%{$doc->{item}})){
        $rowCount++;
}

# Erstelle Grid
$self->{grid} = Wx::Grid->new($self->{tab}, -1);
$self->{grid}->CreateGrid($rowCount,4);
$self->{grid}->SetColLabelValue(0,"A");
 
# Füge dem Grid anhand der XML Datei die Einträge hinzu
my $row=0;
foreach my $key (keys (%{$doc->{item}})){
        my $name = $doc->{item}->{$key}->{'name'};
        $self->{grid}->SetCellValue($row,1, $name);
        $row++;
}
                
# Füge Rechtsklick-Event hinzu für Grid Zellen
Wx::Event::EVT_GRID_CELL_RIGHT_CLICK($self, \&showPopupMenu); 

# Das PopUp Menü an sich
sub showPopupMenu {
        my ($self,$event) = @_;
        my $pos = $event->GetPosition();
        my $row = $event->GetRow();
        
        # Connect Event
        Wx::Event::EVT_MENU($self, "101", sub {
                $self->onSelect($event);
        });
        
        my $menu = Wx::Menu->new();
        my $download = Wx::MenuItem->new($menu, "101","Select");
        $menu->AppendItem($download);
        $menu->Append($loeschen);
        $menu->Append($neustart);
        $self->PopupMenu($menu, $pos);
        $menu->Destroy();
}
        
sub onSelect {
        my ($self,$event) = @_;
        my $row = $event->GetRow();
        $self->{grid}->SetCellValue($row,1, "Text");
        # Disconnect Event
        Wx::Event::EVT_MENU($self, "101","");
}


Letztes Problem wäre wenn kein PopUpMenü Eintrag ausgewählt wird.
Das Event würde dann nicht disconnected werden.
Last edited: 2011-12-19 16:52:15 +0100 (CET)

View full thread [Wx] EventHandler aktiv nur wenn PopUpMenü geöffnet ist