J'ai un problème de dimensionnement très frustrant.wxWidgets enfant sizer ne se développe pas
J'ai deux wxFlexGridSizer
s (et quelques autres) à l'intérieur d'une verticale wxBoxSizer
, comme ceci:
mMainSizer->Add(topsizer, wxSizerFlags(0).Expand());
mMainSizer->Add(1, lineheight);
mMainSizer->Add(mTypeLabel);
mMainSizer->Add(mTypeSizer, wxSizerFlags(0).Expand());
mMainSizer->Add(1, lineheight);
Chaque wxFlexGridSizer
est rempli en utilisant le même code:
sizer->Add(label, wxSizerFlags(1).Expand());
sizer->Add(fieldwidth, 1); // To separate label and data
sizer->Add(data, wxSizerFlags(0).Border(wxRIGHT, rborder).Right());
Mais le wxFlexGridSizer
s ne sont pas Expand
ed à la même largeur, comme je l'ai l'intention. Le plus bas, avec label
s plus petit, est toujours plus étroit que le supérieur, laissant les champs data
désalignés entre eux. Comme ils ont tous deux été ajoutés avec le drapeau Expand()
, le plus étroit devrait s'étendre à la même largeur que le plus large, non?
(je l'ai même essayé d'ajouter le drapeau Right()
au moins un aussi, lors de l'ajout à la wxBoxSizer
, mais il n'a rien fait, ce qui vraiment me confondre.)
Quelqu'un peut-il sauver ma santé mentale par indiquant où je vais mal?
EDIT: Pour autant que je sache, il s'agit d'un bug de wxWidgets. Le drapeau Expand
devrait indiquer aux articles dans un calibreur vertical de se développer à leur largeur maximum. Si je me trompe, quelqu'un s'il vous plaît corrigez-moi.