【发布时间】:2019-12-17 03:13:20
【问题描述】:
问题
我有一个wxGrid,在wxFlexGridSizer 中放置了许多行 (>200)。问题是我在网格下方的按钮消失了。与wxBoxSizer 相同,使用 proportion 设置。
结果应该看起来像 wxBoxSizer 解决方案。
有没有办法在这种情况下使用wxFlexGridSizer?
wxBoxSizer(工作)
wxGrid *grid = new wxGrid(this, wxID_ANY);
grid->CreateGrid(0, 2);
grid->SetDefaultRowSize(20);
grid->AppendRows(200);
wxButton *button = new wxButton(this, wxID_ANY, "button");
wxBoxSizer *bsMain = new wxBoxSizer(wxHORIZONTAL);
bsMain->Add(grid, 1, wxALL, 5);
bsMain->Add(button, 0, wxALL, 5);
SetSizer(bsMain);
wxGridSizer(不工作)
wxGrid *grid = new wxGrid(this, wxID_ANY);
grid->CreateGrid(0, 2);
grid->SetDefaultRowSize(20);
grid->AppendRows(200);
wxButton *button = new wxButton(this, wxID_ANY, "button");
wxFlexGridSizer *fgsMain = new wxFlexGridSizer(1, 0, 0);
fgsMain->Add(grid, 1, wxALL, 5);
fgsMain->Add(button, 0, wxALL, 5);
fgsMain->AddGrowableRow(0);
fgsMain->AddGrowableCol(0);
SetSizer(fgsMain);
我尝试将AddGrowableRow 用于两行、比例设置、wxEXPAND 标志。
这里有一个类似的问题,但解决方法是一种变通方法:
Fitting a big grid (wxGrid) in a dialog (wxDialog)
(截图使用wxFormBuilder v3.8.1)
【问题讨论】:
-
您没有为网格和按钮设置初始大小。在不要忘记
Layout()或SetSizerAndFit(...)尝试该解决方法(至少设置最小尺寸) -
这两个命令都不能解决我的问题。
标签: c++ user-interface wxwidgets sizer wxgrid