У меня очень неприятная проблема с классификатором.
У меня есть два wxFlexGridSizer
(и несколько других вещей) внутри вертикали wxBoxSizer
, вот так:
mMainSizer->Add(topsizer, wxSizerFlags(0).Expand());
mMainSizer->Add(1, lineheight);
mMainSizer->Add(mTypeLabel);
mMainSizer->Add(mTypeSizer, wxSizerFlags(0).Expand());
mMainSizer->Add(1, lineheight);
Каждый wxFlexGridSizer
заполняется с использованием одного и того же кода:
sizer->Add(label, wxSizerFlags(1).Expand());
sizer->Add(fieldwidth, 1); // To separate label and data
sizer->Add(data, wxSizerFlags(0).Border(wxRIGHT, rborder).Right());
Но wxFlexGridSizer
s не Expand
отредактированы на ту же ширину, как я намереваюсь.Нижний с меньшими label
s всегда уже верхнего, оставляя поля data
смещенными между ними.Поскольку оба они были добавлены с флагом Expand()
, более узкий должен расширяться до той же ширины, что и более широкий, верно?
(я даже пытался добавить флаг Right()
к нижнемуКроме того, при добавлении его в wxBoxSizer
, но он ничего не сделал, что действительно смутило меня.1025 *
РЕДАКТИРОВАТЬ: Насколько я могу судить, это ошибка wxWidgets.Флаг Expand
должен указывать элементам в вертикальном сортировщике расширяться до максимальной ширины.Если я ошибаюсь, кто-нибудь, пожалуйста, поправьте меня.