gpt4 book ai didi

resize - wxwidgets 在隐藏/显示子控件后调整 sizer

转载 作者:行者123 更新时间:2023-12-05 00:07:39 26 4
gpt4 key购买 nike

我有一个 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);
}
}

最佳答案

我发现对我有用的解决方案是隐藏/显示包含面板的 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();
}

关于resize - wxwidgets 在隐藏/显示子控件后调整 sizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1914061/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com