wxScrolledWindow添加和删除元素

时间:2016-08-20 16:19:13

标签: c++ scrollbar wxwidgets dynamically-generated

我有一个填充了元素(图片)的wxScrolledWindow对象(每个元素都添加了使用dc.paint的ThumbNail类)。我想用新的一次(不是相同的数字)动态更改元素(用户更改文件夹)。

如何清空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();
    }

但重新放入新元素,就像我上面所做的一样......

知道怎么做或者想在网上寻求帮助吗?谢谢!

1 个答案:

答案 0 :(得分:0)

_ScrolThumbs->GetSizer()->Clear(true);
// or
_ScrolThumbs->DestroyChildren();