私は非常に不満なサイザー問題があります。wxWidgets子サイザーが展開されていません
私はそうのように、垂直wxBoxSizer
内2つのwxFlexGridSizer
S(およびいくつかの他のもの)を持っている:
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
:
mMainSizer->Add(topsizer, wxSizerFlags(0).Expand());
mMainSizer->Add(1, lineheight);
mMainSizer->Add(mTypeLabel);
mMainSizer->Add(mTypeSizer, wxSizerFlags(0).Expand());
mMainSizer->Add(1, lineheight);
各wxFlexGridSizer
は、同じコードを使用して満たされています私は意図した通り同じ幅に編集されていません。下位のものは、小さいものがlabel
sで、常に上のものよりも狭く、data
フィールドの間の位置がずれることがあります。両方ともExpand()
フラグで追加されているため、狭い方の方が広い方と同じ幅に拡大する必要があります。
(wxBoxSizer
に追加する際に、私も、あまりにも低い方へRight()
フラグを追加しようとしましたが、それはが本当にが私を混同している、何もしなかった。)
だれでもによって私の正気を保存することができます私が間違っているところを指摘していますか?
編集:私が知る限り、これはwxWidgetsのバグです。 Expand
フラグは、垂直サイザー内のアイテムに最大幅まで拡張するよう指示する必要があります。私が間違っているなら、誰かが私を修正してください。