wxWidgets - Hide/Show contents of of a `boxsizer` on button click(WxWidget-在按钮单击时隐藏/显示`boxsizer`的内容)
本文介绍了WxWidget-在按钮单击时隐藏/显示`boxsizer`的内容的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
C++
我对C++
非常陌生,在此之前的两周,我正在学习python,并使用Tkinter
制作了一个音乐播放器,作为一个练习项目,直到最近我发现了wxWidgets
并使用了wxPython
,然后我切换到C++,因为我真的很想学习C++
。我有这个播放列表listbox
小部件,我有一个panel
小部件和它自己的boxsizer
小部件,我想让它隐藏和显示,点击一下按钮,主窗口就会相应地自动调整大小。我四处寻找如何做到这一点,我确实找到了Show()
和Hide()
,我能够达到我想要的效果,但主窗口没有正确调整大小,它拉伸得很奇怪,显示的播放列表大小错误。
隐藏播放列表的按钮函数如下
void Frame::Playlist(wxCommandEvent &event)
{
if (playlistButton->GetValue() == 1)
{
hboxSizer8->Show(true);
hboxSizer9->Show(true);
hboxSizer8->Layout();
hboxSizer9->Layout();
vboxSizer->Layout();
panel->SetSizerAndFit(vboxSizer, true);
}
else
{
hboxSizer8->Show(false);
hboxSizer9->Show(false);
hboxSizer8->Layout();
hboxSizer9->Layout();
vboxSizer->Layout();
panel->SetSizerAndFit(vboxSizer, true);
}
}
按钮设置如下
playlistButton = new wxToggleButton(panel, wxID_ANY, wxT("Playlist"), wxDefaultPosition, wxDefaultSize, 0);
playlistButton->Bind(wxEVT_TOGGLEBUTTON, &Frame::Playlist, this);
我添加GIF是为了更好地解释该问题。
wxWidgets
中有没有小工具或某些功能可以创建一个单独的窗口,所以我可以创建一个单独的窗口来保存我的播放列表,而不是所有内容的相同窗口,当用户将它们拉近时,它们可以像捕捉和连接在一起。
推荐答案
您需要在Hide()/Show()
之后调用最上面的SizzerLayout()
。
另外,请查看auidemo并查看有关wxAUI*类的文档。
大小不是窗口。您应该只在wxListBox上调用Hide()/Show()
,然后在最上面的sizer上调用Layout()
。
这篇关于WxWidget-在按钮单击时隐藏/显示`boxsizer`的内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:WxWidget-在按钮单击时隐藏/显示`boxsizer`的内容
基础教程推荐
猜你喜欢
- 如何定义双括号/双迭代器运算符,类似于向量的向量? 2022-01-01
- C++,'if' 表达式中的变量声明 2021-01-01
- 如何在 C++ 中处理或避免堆栈溢出 2022-01-01
- 调用std::Package_TASK::Get_Future()时可能出现争用情况 2022-12-17
- 您如何将 CreateThread 用于属于类成员的函数? 2021-01-01
- 什么是T&&(双与号)在 C++11 中是什么意思? 2022-11-04
- C++ 程序在执行 std::string 分配时总是崩溃 2022-01-01
- 运算符重载的基本规则和习语是什么? 2022-10-31
- C++ 标准:取消引用 NULL 指针以获取引用? 2021-01-01
- 设计字符串本地化的最佳方法 2022-01-01