wxWidgets und Layout mit wxSizer



  • Hallo,

    ich habe hier schon ein wenig die SuFu bemüht, konnte aber zu meinem Problem leider nicht fündig werden. Es geht dabei um Folgendes:

    Ich habe eine Hierarchie von wxBoxSizern aufgebaut und möchte damit eine Art Tabelle aufbauen. Linksbündig soll ein Text stehen, rechtsbündig soll ein Text stehen und dazwischen hätte ich gerne Leerzeichen. Von diesem Konstrukt sollen dann mehrere untereinander stehen.

    Dazu habe ich einen vertikalen Sizer, in den ich horizontale einfüge. Leider nehmen die horizontalen Sizer aber nicht den gesamten Platz ein - die beiden Texte stehen direkt hintereinander, ohne dass Leerzeichen eingefügt sind. Woran kann das liegen?

    So sieht mein Code aus:

    wxStaticBox* box_phaseDistribution = new wxStaticBox(this, wxID_STATIC, wxT("Phase Distribution"), wxDefaultPosition, wxSize(width, -1));
    	wxStaticBoxSizer* sizer_phaseDistribution = new wxStaticBoxSizer(box_phaseDistribution, wxVERTICAL);
    
    	wxBoxSizer* pD_sizer1 = new wxBoxSizer (wxHORIZONTAL);
    
    	wxStaticText* pD_text1 = new wxStaticText (this, -1, wxT("phases"));
    	pD_sizer1->Add(pD_text1, wxALIGN_LEFT);
    
    	pD_sizer1->AddStretchSpacer(1);
    
    	wxStaticText* pD_text2 = new wxStaticText(this, -1, wxT("3"));
    	pD_sizer1->Add(pD_text2, wxALIGN_RIGHT);
    
    	sizer_phaseDistribution->Add(pD_sizer1, 0);
    

    Danke für Eure Mühen...



  • Hallo,

    das Problem kenn ich leider zur Genüge und es tritt in verschiedenen Kombinationen auf.
    Es liegt an den Eigenschaften der Elemente, d.h. wxEXPAND, mit wxALIGN allein ist dir nicht geholfen.



  • Nimm doch mal den wxFormbuilder, damit erstelle ich mein GUI und man kann gleich testen ob es so funktioniert wie es soll.

    Bei Tabellenanordnung wäre eventuell wxFlexGridSizer oder wxGridBagSizer das Richtige. Meist liegt es an "proportion" (0, 1) und wxExpand.


Log in to reply