wxWidgets对齐问题

时间:2012-08-22 17:18:07

标签: wxwidgets

我想使用wxWidgets窗口创建顶部列表框,当您更改窗口大小时,其大小会更改。下面是三个按钮,当窗口大小改变时,大小不会改变。按钮和列表框之间的距离不断,并且在调整窗口大小时不会改变。

2 个答案:

答案 0 :(得分:1)

您希望垂直wx.BoxSizer具有1wx.EXPAND标志的比例。此sizer将在其中包含您的列表框,其中添加了1wx.EXPAND标记的比例。此sizer还将在其中添加一个水平框大小调整器,并添加了三个按钮。你想对你提到的“窗口”进行window.SetSizer(<your vertical sizer>)(可能是wx.Frame)。

答案 1 :(得分: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