非常に苛立たしいサイザーの問題があります。
私は次のようwxFlexGridSizerに、垂直の中に2つのs(および他のいくつかのもの)を持ってい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());
しかし、私が意図しているように、 wxFlexGridSizersはExpand同じ幅に編集されていません。sが小さい下の方labelは、常に上の方よりも狭く、dataフィールド間の位置がずれたままになります。どちらも旗が付いているのでExpand()、幅の狭い方は幅の広い方と同じ幅に拡大するはずですよね?
Right()(フラグを下のフラグに追加するときにも、フラグを追加しようとしましたwxBoxSizerが、何も実行されなかったため、非常に混乱しました。)
誰かが私が間違っているところを指摘することによって私の正気を救うことができますか?
編集:私が知る限り、これはwxWidgetsのバグです。フラグは、垂直サイザー内のExpandアイテムに最大幅まで拡張するように指示する必要があります。私が間違っている場合は、誰かが私を訂正してください。