2011-07-31 12 views
1

私は非常に不満なサイザー問題があります。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は、同じコードを使用して満たされています私は意図した通り同じ幅に編集されていません。下位のものは、小さいものがlabelsで、常に上のものよりも狭く、dataフィールドの間の位置がずれることがあります。両方ともExpand()フラグで追加されているため、狭い方の方が広い方と同じ幅に拡大する必要があります。

wxBoxSizerに追加する際に、私も、あまりにも低い方へRight()フラグを追加しようとしましたが、それはが本当にが私を混同している、何もしなかった。)

だれでもによって私の正気を保存することができます私が間違っているところを指摘していますか?

編集:私が知る限り、これはwxWidgetsのバグです。 Expandフラグは、垂直サイザー内のアイテムに最大幅まで拡張するよう指示する必要があります。私が間違っているなら、誰かが私を修正してください。

答えて

2

このように、このバグは私のものでした。私はwxFlexGridSizer::AddGrowableColwxFlexGridSizerに成長可能な列を与えたと思っていましたが、これはコードの初期の反復であったに違いありません。私がそれをしたら、彼らは私が彼らに欲しいのと同じように拡大しました。

関連する問題