Kwa*_*aak 4 wxwidgets children resize sizer
我有一个wxWindow.在那里我有一个wxBoxSize(垂直).sizer有3个子控件.
我希望能够隐藏三个子控件之一,并让sizer及其父控件自动调整大小.例如,当我隐藏sizer的一个子控件时,窗口减少200像素.
现在,我显示隐藏某些控件,并调整窗口大小的方法如下所示:(硬编码,不完整)
void GenUIAanleverOptionsDialog::OnToggleButtonShowLabels( wxCommandEvent& event )
{
if(this->btnShowLabels->GetValue())
{
this->pnlInfoLabels->Show(true);
this->SetSize(this->GetSize().GetWidth(), 573);
}
else
{
this->pnlInfoLabels->Show(false);
this->SetSize(this->GetSize().GetWidth(), 294);
}
}
Run Code Online (Sandbox Code Playgroud)
我发现为我工作的解决方案是隐藏/显示包含面板的Sizer.更改Sizer的可见性后,调用Sizer的方法Layout()是必要的.
然而,这也没有调整父窗口的位置,因此调用wxWindow的Fit()方法也是必要的.
最终代码:
void GenUIStatusAanleverFrame::OnToggleButtonShowLabels( wxCommandEvent& event )
{
if(this->btnShowLabels->GetValue())
{
this->sizerInfoLabels->Show(true);
this->sizerOverview->Layout();
}
else
{
this->sizerInfoLabels->Show(false);
this->sizerOverview->Layout();
}
this->Fit();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4434 次 |
| 最近记录: |