2013-06-23 4 views
1

Ok поэтому у меня есть вопрос о некоторых дробилок WxWidgets и как я думал, что они должны были действовать, но не действуют ...WxWidgets BoxSizer не расширяется до полной ширины

Minimum size

Bigger size

Мой набор для этих изображений, как так:

verticalBox = new wxBoxSizer(wxVERTICAL); 
serverBarBox = new wxBoxSizer(wxHORIZONTAL); 

serverBarBox->Add(serverEntry, 5); 
serverBarBox->Add(portEntry, 1); 

verticalBox->Add(serverBarBox, wxEXPAND); 

Теперь я думал, что serverBarBox будет расширяться, чтобы занять всю ширину однако это не так. Как получилось, что я добьюсь этого с помощью wxBoxSizer.

ответ

2

Вы передаете wxEXPAND как пропорцию, а не как флаг, которым она является.

Чтобы избежать таких проблем, предпочитайте использовать намного более прозрачный wxSizerFlags, а не передавать все параметры sizer напрямую. Например. переписывая свой код выше с ним, дает

serverBarBox->Add(serverEntry, wxSizerFlags().Proportion(5)); 
serverBarBox->Add(portEntry, wxSizerFlags().Proportion(1)); 

verticalBox->Add(serverBarBox, wxSizerFlags().Expand());