wxGrid + wxButton in einem wxFlexGridSizer



  • Hallo liebe Community,

    bei meinem Oberflächendesign mit wxWidgets habe ich folgendes Problem:
    Ich möchte in einem Panel eine Tabelle (wxGrid) und vier Buttons darunter darstellen.
    Im Fall, dass die Tabelle so lang wird, dass sie nicht mehr ins Fenster passt, sollte sie (nur in die Richtung, in die es nötig ist) Scrollbalken erhalten.
    Die Buttons sollen in jedem Fall noch zu sehen sein.

    Mein aktueller Code im Konstruktor vom wxPanel sieht wie folgt aus:

    wxGridSizer* buttonSizer = new wxGridSizer( 1, 4, 10, 10 );
    
    buttonSizer->Add( Button1 );
    buttonSizer->Add( Button2 );
    buttonSizer->Add( Button3 );
    buttonSizer->Add( Button4 );
    
    wxFlexGridSizer* tableFlexGridSizer = new wxFlexGridSizer( 2, 1, 10, 10 );
    tableFlexGridSizer->AddGrowableRow( 1 );
    tableFlexGridSizer->Add( LoadGrid, 1, wxGROW );
    tableFlexGridSizer->Add( buttonSizer, 1, wxGROW );
    
    tableFlexGridSizer->Fit( this );
    tableFlexGridSizer->SetSizeHints( this );
    
    SetSizer( tableFlexGridSizer );
    

    Leider sieht es dann so aus:
    Bild 1: http://i30.tinypic.com/f0qhqo.png
    Der weisse Bereich rechts neben der Tabelle sollte weg.

    Bild 2: http://i27.tinypic.com/96gumb.png
    Die Tabelle sollte so zusammengedrückt werden, dass die Buttons wieder sichtbar sind.

    Wär echt super, wenn mir jemand helfen könnte, ich komm nämlich trotz vielem Rumprobieren und Lesen einiger Tutorials alleine noch nicht an mein Ziel.

    Vielen Dank im Voraus
    Dobias



  • Hallo Dobias!

    Sollte es nicht tableFlexGridSizer->AddGrowableRow( 0 ); heißen? (Index fängt bei 0 an)
    Den weißen Rand kriegst du mit wxWindow::SetBackgroundColour (wxColour) weg. Farben liefert dir wxSystemSettings::GetColour (wxSystemColour). Liegt am Expandieren des wxGrids.

    Und was passiert, wenn du das Fenster kleiner ziehst? werden die Buttons einfach verdeckt?

    MfG
    Yoschi



  • yoschi__ schrieb:

    Sollte es nicht tableFlexGridSizer->AddGrowableRow( 0 ); heißen? (Index fängt bei 0 an)
    Den weißen Rand kriegst du mit wxWindow::SetBackgroundColour (wxColour) weg. Farben liefert dir wxSystemSettings::GetColour (wxSystemColour). Liegt am Expandieren des wxGrids.

    Hi, und danke für deine Antwort.
    Durch hundsgemeines Crossposting meinerseits hat sich die Angelegenheit in nem englischsprachigen Forum jedoch schon weiterentwickelt:
    http://wxforum.shadonet.com/viewtopic.php?t=25515
    Projekt ist jetzt mitlerweile eh schon abgeschlossen. 😉

    yoschi__ schrieb:

    Und was passiert, wenn du das Fenster kleiner ziehst? werden die Buttons einfach verdeckt?

    Jupp, siehe zweiter screenshot. 😉


Anmelden zum Antworten