2012-08-22 112 views
0

我想用wxWidgets創建一個窗口,在窗口頂部列表框中,當你改變窗口大小時,它的大小發生改變。下面是三個按鈕,當窗口大小改變時,大小不會改變。按鈕和列表框之間的距離不斷變化,並且在調整窗口大小時不會改變。wxWidgets對齊問題

+0

那麼是什麼阻止你? – stark

回答

1

你想垂直wx.BoxSizer與比例1wx.EXPAND標誌。這個sizer會在你的列表框中添加比例爲1wx.EXPAND的標誌。該sizer還將在其中添加一個水平方框大小調整器,並添加三個按鈕。你想對你提到的「窗口」做一個window.SetSizer(<your vertical sizer>)(可能是wx.Frame)。

0
void SizerTest::CreateControls() 
{  
////@begin SizerTest content construction 
    SizerTest* itemFrame1 = this; 

    wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL); 
    itemFrame1->SetSizer(itemBoxSizer2); 

    wxArrayString itemListBox3Strings; 
    wxListBox* itemListBox3 = new wxListBox(itemFrame1, ID_LISTBOX2, wxDefaultPosition, wxDefaultSize, itemListBox3Strings, wxLB_SINGLE); 
    itemBoxSizer2->Add(itemListBox3, 1, wxGROW|wxLEFT|wxRIGHT|wxTOP, 5); 

    wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxHORIZONTAL); 
    itemBoxSizer2->Add(itemBoxSizer4, 0, wxALIGN_LEFT, 0); 

    wxButton* itemButton5 = new wxButton(itemFrame1, ID_BUTTON3, _("Button"), wxDefaultPosition, wxDefaultSize, 0); 
    itemBoxSizer4->Add(itemButton5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); 

    wxButton* itemButton6 = new wxButton(itemFrame1, ID_BUTTON4, _("Button"), wxDefaultPosition, wxDefaultSize, 0); 
    itemBoxSizer4->Add(itemButton6, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); 

    wxButton* itemButton7 = new wxButton(itemFrame1, ID_BUTTON5, _("Button"), wxDefaultPosition, wxDefaultSize, 0); 
    itemBoxSizer4->Add(itemButton7, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); 

////@end SizerTest content construction 
} 

應該是這樣的:http://screencast.com/t/ZonUBhPZ7

調整大小:http://screencast.com/t/zRDpDix7Yr