#include "monitorToolBox.h" #include "monitorToolPage.h" #include #include MonitorToolBox::MonitorToolBox(QWidget *parent) : QScrollArea(parent) ,m_pContentVBoxLayout(nullptr) ,_container(nullptr) { _container = new QWidget; m_pContentVBoxLayout = new QVBoxLayout(_container); setWidget(_container); m_pContentVBoxLayout->setContentsMargins(0, 0, 0, 0); setWidgetResizable(true); } MonitorToolBox::~MonitorToolBox() { } void MonitorToolBox::addWidget(const QString &title, QWidget *pWidget) { MonitorToolPage *page = new MonitorToolPage(this); page->addWidget(title, pWidget); m_pContentVBoxLayout->addWidget(page); m_mapWidget.insert(title,page); } void MonitorToolBox::removeWidget(const QString &title) { bool bExist = m_mapWidget.contains(title); if(bExist) { QWidget *pWidget = m_mapWidget.take(title); if(pWidget) { MonitorToolPage* toolPage = dynamic_cast(pWidget); if(toolPage) { m_pContentVBoxLayout->removeWidget(toolPage); delete toolPage; } } } else { //cerr } } void MonitorToolBox::removeAllWidget() { for(auto& pWidget:m_mapWidget){ if(pWidget) { MonitorToolPage* toolPage = dynamic_cast(pWidget); if(toolPage) { m_pContentVBoxLayout->removeWidget(toolPage); delete toolPage; } } } m_mapWidget.clear(); }