#include "monitorDetailAttributeDlg.h" #include "ui_monitorDetailAttributeDlg.h" #include "monitorAttributeGroupDlg.h" #include "monitorPanel.h" #include "global.h" MonitorDetailAttributeDlg::MonitorDetailAttributeDlg(QWidget *parent) : QDialog(parent) , ui(new Ui::monitorDetailAttributeDlg) ,_pParent(nullptr) ,m_gridLayout(nullptr) { _pParent = dynamic_cast(parent); ui->setupUi(this); this->setWindowFlags(Qt::FramelessWindowHint | windowFlags()); initial(); } MonitorDetailAttributeDlg::~MonitorDetailAttributeDlg() { delete ui; } void MonitorDetailAttributeDlg::initial() { _curColNum = 2; connect(ui->btn_exit,&QPushButton::clicked,this,&MonitorDetailAttributeDlg::onCloseClicked); connect(ui->cb_colNum,&QComboBox::currentTextChanged,this,&MonitorDetailAttributeDlg::onColChanged); m_gridLayout = new QGridLayout(ui->content); } void MonitorDetailAttributeDlg::onCloseClicked() { hide(); } void MonitorDetailAttributeDlg::onColChanged(const QString& str) { updateLayout(str.toInt()); } void MonitorDetailAttributeDlg::generateAttributeGroups(QUuid uid) { clearAllGroup(); QMap> mapLst; auto mapPara = _pParent->getModelController()->getMonitorPara(); if(mapPara.contains(uid)){ _curId = uid; auto lst = mapPara[uid]; for(auto &info:lst){ if(info.bSelected) mapLst[info.sGroup].append(info); } for(auto iter = mapLst.begin(); iter != mapLst.end();++iter){ MonitorAttributeGroupDlg* pDlg = new MonitorAttributeGroupDlg(); pDlg->setDetailParent(this); pDlg->setCurMode(1); pDlg->createGroupView(iter.value()); _curGroups.insert(iter.key(),pDlg); } } updateLayout(_curColNum); } void MonitorDetailAttributeDlg::updateLayout(int columns) { _curColNum = columns; int i = 0; for(auto& pDlg:_curGroups){ int row = i / _curColNum; int col = i % _curColNum; m_gridLayout->addWidget(pDlg, row, col); i++; } } void MonitorDetailAttributeDlg::clearAllGroup() { for(auto& dlg:_curGroups){ m_gridLayout->removeWidget(dlg); delete dlg; } _curGroups.clear(); }