【发布时间】:2020-10-26 15:57:45
【问题描述】:
我对@987654323@很陌生,才2周,在此之前,我在学习python,用Tkinter做一个音乐播放器,作为一个练习项目,直到最近才发现wxWidgets并使用了@ 987654326@ 然后我切换到 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);
wxWidgets 中还有一个小部件或某些功能可以创建一个单独的窗口,所以我可以创建一个单独的窗口来保存我的播放列表,而不是所有内容的同一个窗口,它们可以像卡在一起并加入,当用户将它们彼此靠近时。
【问题讨论】:
标签: c++ user-interface wxwidgets