Thread Wx-Anfänger: Elemente ineinandr verschachteln (7 answers)
Opened by pktm at 2007-11-17 17:09

lichtkind
 2007-11-17 19:00
#102515 #102515
User since
2004-03-22
5697 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
naja ich hab meist das gefühl leute für blöd zu verkaufen wenn ich zu langsam vorgehe. aber ich kann das tutorial ja noch verbessern, das ist je eh noch halb fertig.

Aber erst mal 2 grunsätzliche hinweise:

1.)versuch die zeilen zu ordnen und nicht so lang werden zu lassen.
2.)benutz use Wx qw (:everything); solang du noch probierst.

im groben liegst du schon richtig, ich glaub für dich klärt sich alles wenn du die bedeutung von "wxGROW|wxALL" verstehst weil die an der stelle deines programmes keinen sinn machen. bei buttons fürd ich nie wxGROW benutzen sondern nur bei widgets die was sinnvolles mit dem mehr an platz anfangen können wie textfelder oder so. und das WxALL verhindert eigentlich das was du erreichen willst. Das macht das es sich an allen 4 rahmenkanten ausrichtet, also in der mitte, aber du willst es ja oben anhängen, also wäre deine Wahl eher wxTOP. Ähnlich unschön ist die 1 im zweiten parameter die dir ebenfalls den button aufbläst in dir dimension die der sizer nicht kontrolliert.

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
use strict;
use warnings;

package ServusWelt;
use Wx qw/ :everything /;
use base qw(Wx::App);                       # von Wx::App ableiten

sub OnInit {
 my $app   = shift;
 my $frame = Wx::Frame->new( undef, -1, 'Servus Welt', [-1, -1], [150, 150]);
 my $panel = Wx::Panel->new( $frame, -1);
    
 my $staticbox = Wx::StaticBox->new( $panel, -1, 'Wx::StaticBox' );
 my $button    = Wx::Button->new( $panel, -1, 'Button 3' );
    
 my $nsz = Wx::StaticBoxSizer->new( $staticbox, wxVERTICAL);
    $panel->SetSizer($nsz);
    $nsz->Add( $button, 0, wxGROW|wxTOP, 5 );

    
    $frame->Show(1);                        # Fenster zeichnen
    $app->SetTopWindow($frame);             # Fenster als oberstes bestimmen
        1;
} # /OnInit

package main;
ServusWelt->new->MainLoop;                # Programminstanz erzeugen und starten

vielleicht verstehst du es aus dem code heraus wenn nicht frag einfach weiter :)
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.

View full thread Wx-Anfänger: Elemente ineinandr verschachteln