wxScrolledWindow 添加和删除元素
wxScrolledWindow add and remove elements
我有一个 wxScrolledWindow 对象,其中填充了元素(图片)(每个元素都添加了 class ThumbNail,它使用 dc.paint)。我想用新的一次动态更改元素(不是相同的数字)(用户更改文件夹)。
我怎样才能清空 wxScrolledWindow 对象中的所有项目并重新放入新的项目?然后重置滚动条。
_ScrolThumbs = new wxScrolledWindow(_pMainPanel);
wxGridSizer *m_swSizer = new wxGridSizer(1,1,0);
_ScrolThumbs->SetSizer(m_swSizer); // Sets the window to have the given layout sizer.
std::vector<ThumbNail*> _Thumbs;
for(int i=0;i < FilePr::Instance()->GetNumThumbs() ;i++)
{
_Thumbs.push_back(new ThumbNail(_ScrolThumbs, PicName[i]));
_ScrolThumbs ->GetSizer()->Add (_Thumbs[i], 1, wxALL|wxALIGN_CENTER_VERTICAL, 5);
}
然后我尝试这样做(当按下按钮时):
wxWindowList& lst = _ScrolThumbs->GetChildren();
//if (!lst.empty())
std::cout << lst.size() << '\n';
while(!lst.empty()) //for(int i = 0; i < lst.size(); i++) //lst.size()
{
wxWindow *wnd = lst.back();
wnd->Destroy();
}
但是像我上面那样把新元素放回去是行不通的...
知道如何执行此操作或在网上寻求帮助吗?谢谢!
_ScrolThumbs->GetSizer()->Clear(true);
// or
_ScrolThumbs->DestroyChildren();
我有一个 wxScrolledWindow 对象,其中填充了元素(图片)(每个元素都添加了 class ThumbNail,它使用 dc.paint)。我想用新的一次动态更改元素(不是相同的数字)(用户更改文件夹)。
我怎样才能清空 wxScrolledWindow 对象中的所有项目并重新放入新的项目?然后重置滚动条。
_ScrolThumbs = new wxScrolledWindow(_pMainPanel);
wxGridSizer *m_swSizer = new wxGridSizer(1,1,0);
_ScrolThumbs->SetSizer(m_swSizer); // Sets the window to have the given layout sizer.
std::vector<ThumbNail*> _Thumbs;
for(int i=0;i < FilePr::Instance()->GetNumThumbs() ;i++)
{
_Thumbs.push_back(new ThumbNail(_ScrolThumbs, PicName[i]));
_ScrolThumbs ->GetSizer()->Add (_Thumbs[i], 1, wxALL|wxALIGN_CENTER_VERTICAL, 5);
}
然后我尝试这样做(当按下按钮时):
wxWindowList& lst = _ScrolThumbs->GetChildren();
//if (!lst.empty())
std::cout << lst.size() << '\n';
while(!lst.empty()) //for(int i = 0; i < lst.size(); i++) //lst.size()
{
wxWindow *wnd = lst.back();
wnd->Destroy();
}
但是像我上面那样把新元素放回去是行不通的...
知道如何执行此操作或在网上寻求帮助吗?谢谢!
_ScrolThumbs->GetSizer()->Clear(true);
// or
_ScrolThumbs->DestroyChildren();