C++11 如何获得像sizer一样大的propertygrid?

C++11 如何获得像sizer一样大的propertygrid?,c++11,wxwidgets,C++11,Wxwidgets,我已经将我的属性网格的大小硬编码为300300,但是如何动态地进行呢 您需要将比例设置为1,并为其设置wxEXPAND标志,请参见sizeritem和sizeritembase属性。所以结果应该是 wxBoxSizer* bConstantsSizer; bConstantsSizer = new wxBoxSizer( wxVERTICAL ); m_propertyGrid1 = new wxPropertyGrid(m_scrolledWindowConstants,wxID_ANY,

我已经将我的属性网格的大小硬编码为300300,但是如何动态地进行呢


您需要将
比例设置为
1
,并为其设置
wxEXPAND
标志,请参见
sizeritem
sizeritembase
属性。所以结果应该是

wxBoxSizer* bConstantsSizer;
bConstantsSizer = new wxBoxSizer( wxVERTICAL );

m_propertyGrid1 = new wxPropertyGrid(m_scrolledWindowConstants,wxID_ANY, wxDefaultPosition, wxSize(300, 300), wxPG_DEFAULT_STYLE|wxHSCROLL|wxVSCROLL);
bConstantsSizer->Add( m_propertyGrid1, 0, wxALL, 5 );

什么类型的施胶器是
bConstantsSizer
?您希望动态调整大小的方向是什么?bConstantsSizer=新的wxBoxSizer(wxVERTICAL);必须将sizer分配给包含sizer管理的控件的窗口。请阅读文档并查看样本。@Ripi2谢谢您的回答。但我以为我是在wxformbuilder做的@j35t3r,为什么要在wxPropertyGrid构造函数中传递静态大小?您应该使用“wxDefaultSize”。这是正确的,但最好使用
bConstantSizer->Add(m_propertyGrid1,wxSizerFlags(1).Expand().Border())
,这样可读性更好。是的,这将是最好的,但在这种情况下,我认为最佳实践不取决于开发人员。生成代码的AFAICT。
bConstantsSizer->Add( m_propertyGrid1, 1, wxALL|wxEXPAND, 5 );