Thread [WxPerl] Ausgaben in der Statusbar (8 answers)
Opened by MarkusH at 2013-03-31 17:11

lichtkind
 2013-04-02 11:22
#166812 #166812
User since
2004-03-22
5680 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
repost, dein code leicht geändert mit lösung.
schau dir bitte an wie hier klassen verwendet werden. Das ist wesentlich sauberer. Normaler coder, der in symboltabelle greift, wenn sichs vermeiden lässt, ist keine gute Idee. Manchmal ist es nützlich und dann kapselt man es in eine routine aber nicht im hauptcode und und nicht mit der anonymen subref wo man normal nicht gleich versteht was da geht.

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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/usr/bin/perl -w -- 
# generated by wxGlade 0.6.5 (standalone edition) on Sun Mar 31 21:41:44 2013
# To get wxPerl visit http://wxPerl.sourceforge.net/

use v5.12;

package MyApp;
use Wx qw/ :everything /;
use base qw(Wx::App);

sub OnInit {
        my $app   = shift;
        my $frame = MyFrame->new( undef, wxDEFAULT, 'Test');
        $frame->Show(1);
        $app->SetTopWindow($frame);
        1;
}

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

my @loginBitmaps = (Wx::Bitmap->new("arrow_2_blue__disable.xpm", wxBITMAP_TYPE_ANY),
                                        Wx::Bitmap->new("arrow_2_green.xpm", wxBITMAP_TYPE_ANY));
Wx::InitAllImageHandlers();

sub new {
        my( $self, $parent, $id, $title, $pos, $size, $style, $name ) = @_;
        $parent = undef              unless defined $parent;
        $id     = -1                 unless defined $id;
        $title  = ""                 unless defined $title;
        $pos    = wxDefaultPosition  unless defined $pos;
        $size   = wxDefaultSize      unless defined $size;
        $name   = ""                 unless defined $name;
        $style = wxDEFAULT_FRAME_STYLE unless defined $style;

        $self = $self->SUPER::new( $parent, $id, $title, $pos, $size, $style, $name );

# Menu Bar
        $self->{menubar} = Wx::MenuBar->new();
        my $wxglade_tmp_menu;
        $wxglade_tmp_menu = Wx::Menu->new();
        $wxglade_tmp_menu->Append(Wx::NewId(), "Import", "");
        $wxglade_tmp_menu->Append(Wx::NewId(), "export", "");
        $wxglade_tmp_menu->AppendSeparator();
        $wxglade_tmp_menu->Append(Wx::NewId(), "Beenden", "");
        $self->{menubar}->Append($wxglade_tmp_menu, "Test");
        $self->SetMenuBar($self->{menubar});
        
# Tool Bar
        $self->{toolbar} = Wx::ToolBar->new($self, -1, wxDefaultPosition, wxDefaultSize, wxTB_HORIZONTAL|wxTB_TEXT|wxTB_HORZ_LAYOUT|wxTB_HORZ_TEXT);
        $self->SetToolBar($self->{toolbar});
        $self->{toolbar}->AddTool(Wx::NewId(), "Login", $loginBitmaps[0], wxNullBitmap, wxITEM_CHECK, "Einloggen", "lange hilfe");
        $self->{toolbar}->AddSeparator();
        $self->{toolbar}->AddTool(Wx::NewId(), "item", wxNullBitmap, wxNullBitmap, wxITEM_NORMAL, "", "");

# Status Bar
        $self->{statusbar} = $self->CreateStatusBar(2, 0);
        $self->{statusbar}->SetStatusWidths(80,-1);
        $self->SetStatusBarPane( 1 );
        my( @statusbar_fields ) = qw(loginTimer status);
        if( @statusbar_fields ) {
                $self->{statusbar}->SetStatusText($statusbar_fields[$_], $_)    
                for 0 .. $#statusbar_fields ;
        }
        $self->{toolbar}->Realize();
        $self->Layout();

        return $self;
}

package main;
MyApp->new->MainLoop;

Last edited: 2013-04-02 11:32:27 +0200 (CEST)
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.

View full thread [WxPerl] Ausgaben in der Statusbar