我有一个非常令人沮丧的sizer问题。wxWidgets儿童sizer不扩大
我有两个wxFlexGridSizer
S(以及其他一些东西)垂直wxBoxSizer
里面,像这样:
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
使用相同的代码填写我不打算在Expand
编辑相同的宽度,因为我打算。较低的一个,较小的label
s,总是比上一个窄,使得data
字段在它们之间未对齐。既然它们都加上了Expand()
的标志,那么较窄的那个应该扩大到与较宽的一样的宽度,对吧?
(我甚至尝试添加的Right()
标志到下一个太,将它添加到wxBoxSizer
时,却什么也没做,这真的搞糊涂了。)
任何人都可以通过保存我的理智指出我要去哪里错了?
编辑:据我所知,这是一个wxWidgets的错误。标记Expand
应该告诉垂直分割器中的项目将其展开为最大宽度。如果我错了,有人请纠正我。