[wxWidgets] und die blöden Sizer



  • Ich komm einfach nicht weiter. Ich verstehe nicht, warum das folgende nicht geht:

    Es erscheint nur ein ganz kleiesn graues kästchen in der linken oberen Ecke, was dann wohl das panel mit dem Button von cWndLeft sein soll... Allerdings ist der Button nicht mal vollständig zu sehen. Die Beschriftung ist abgeschnitten und es ist nichtmal die Hälfte des buttons zu sehen. Ich will, dass das Panel das ganze Fenster überstreckt. Später soll es sich den Platz dann mit was anderen teilen, aber das ist erstmal egal. Ich krepel schon stundenlang dran rum und es geht einfach nicht.

    // cWndLeft, WndRight ist von wxPanel abgeleitet
    // cCompView auch
    
    void cCompView::SetupUI()
    {
    	// 
    	SetBackgroundColour(wxColour("WHITE"));
    
    	wxBoxSizer* sizer = new wxBoxSizer(wxHORIZONTAL);
    
    	m_WndLeft = new cWndLeft(this);  // Rest ist dfault, also wxDefaultPosition usw
    	m_WndRight = new cWndRight(this);
    
    	m_WndLeft->SetWindowStyleFlag(wxSUNKEN_BORDER);  // damit man sie sehen kann
    	m_WndRight->SetWindowStyleFlag(wxSUNKEN_BORDER);
    
    	sizer->Add(m_WndLeft, 1, wxALL | wxEXPAND, 0);
    	sizer->Add(m_WndRight, 1, wxALL | wxEXPAND, 0);
    
    	SetSizer(sizer);
    	Layout();
        // #1
    }
    
    void cWndLeft::SetupUI()
    {
            // Vom konstruktor aufgerufen
    	wxSizer* bSizer2;
    	bSizer2 = new wxBoxSizer( wxVERTICAL );
    
    	wxBoxSizer* bSizer3 = new wxBoxSizer(wxHORIZONTAL);
    
    	m_PatWidget = new wxPanel( this, wxID_ANY);
    	m_PatWidget->SetWindowStyleFlag(wxSUNKEN_BORDER);
    	m_PatWidget->SetBackgroundColour(wxColour("BLACK"));
    
    	bSizer3->Add(new wxButton(m_PatWidget, wxID_ANY, "Bla"), 1, wxEXPAND | wxALL, 0);
    	m_PatWidget->SetSizer(bSizer3);
    
    	bSizer2->Add( m_PatWidget, 1, wxEXPAND | wxALL , 0 );
    	SetSizer( bSizer2 );
    	Layout();
    }
    

    Wenn ich bei #1 noch einfüge

    m_WndLeft->Layout();
    

    , dann wird das Kästchen ganz klein nur noch 2 oder 3 pixel groß. Vorher waren es bestimmt 20 pixel.
    Ich versteh es einfach nciht mehr.
    Im wxFormBuilder geht das alles so, wie ich es mir ausdachte 😞
    Das ist eigentlich fast der code den er ausgespuckt hat, aber geht eben nciht.


  • Mod

    Ruf nach Layout mal Fit() auf, evtl. hilft das.
    Ansonsten kann ich da auch keine Fehler entdecken.


Anmelden zum Antworten