add monitor save/load functions

This commit is contained in:
baiYue 2025-12-08 20:05:07 +08:00
parent c7f51ae47d
commit a4e3b529bd
16 changed files with 473 additions and 25 deletions

View File

@ -864,7 +864,7 @@ struct DiagramInfo //组态图结构信息
QString sName;
QString sTag;
QVariant parentId;
QString sBasePageName; //基模组态图名称
QString sBasePageName; //组态图名称
};
struct DiagramContent {

View File

@ -18,6 +18,8 @@ set(DIAGRAMCAVAS_HEADER_FILES
include/monitorDetailAttributeDlg.h
include/monitorDisplaySettingDlg.h
include/monitorItemPreviewDlg.h
include/loadMonitorPageDlg.h
include/cornerMonitorLauncher.h
include/itemPropertyDlg.h
include/propertyContentDlg.h
include/serializable.h
@ -137,6 +139,8 @@ set(DIAGRAMCAVAS_SOURCE_FILES
source/monitorDetailAttributeDlg.cpp
source/monitorDisplaySettingDlg.cpp
source/monitorItemPreviewDlg.cpp
source/loadMonitorPageDlg.cpp
source/cornerMonitorLauncher.cpp
source/itemPropertyDlg.cpp
source/propertyContentDlg.cpp
source/statusBar.cpp
@ -258,6 +262,7 @@ set(UI_FILES
ui/monitorConfigDlg.ui
ui/monitorDetailAttributeDlg.ui
ui/monitorDisplaySettingDlg.ui
ui/loadMonitorPageDlg.ui
)
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)

View File

@ -0,0 +1,29 @@
#ifndef CORNERMONITORLAUNCHER_H
#define CORNERMONITORLAUNCHER_H
/***************cavas中的monitor临时加载菜单*****************/
#include <QWidget>
class QMdiArea;
class CornerMonitorLauncher : public QWidget
{
Q_OBJECT
public:
CornerMonitorLauncher(QMdiArea *parent = nullptr);
~CornerMonitorLauncher();
void showDlg();
void positionAtCorner();
signals:
void openLoadMonitorDlg();
protected:
void paintEvent(QPaintEvent* event) override;
void mousePressEvent(QMouseEvent* event) override;
private:
void showQuickMenu();
private:
QMdiArea* m_mdiArea;
};
#endif

View File

@ -16,6 +16,8 @@ class EditPanel;
class GraphicsBaseModelItem;
class EditBaseItem;
class MonitorPanel;
class CornerMonitorLauncher;
class LoadMonitorPageDlg;
class DIAGRAM_DESIGNER_PUBLIC DiagramCavas : public QMdiArea
{
@ -28,6 +30,8 @@ public:
DrawingPanel* getPanel(QString);
EditPanel* getEditPanel(QString);
MonitorPanel* getMonitorPanel(QString);
void updateSubPos();
public:
void initial();
signals:
@ -42,7 +46,7 @@ public slots:
void onSignal_savePage();
void onSignal_loadPage(PowerEntity* p);
void onSignal_loadEdit(const QString&,QUuid);
void onSignal_loadMonitor(PowerEntity* p);
void onSignal_loadMonitor(PowerEntity* p,QString sParent);
void runPage(const QString); //运行时
void onSignal_runPage();
void onSignal_deletePage();
@ -82,19 +86,24 @@ public slots:
void onSignal_monitorSelected(DiagramInfo); //监控选中
void onSignal_saveMonitor(QList<QPair<QString,QUuid>>); //保存选中的监控
void updateMonitorListFromDB(); //从数据库更新监控列表
void updateMonitorListFromDB(int dest = 0); //从数据库更新监控列表 0更新外部lst 1更新内部lst
QMap<QString,QPair<DrawingPanel*,QMdiSubWindow*>> getMapDraw() {return m_mapDrawPanel;}
QMap<QString,QPair<EditPanel*,QMdiSubWindow*>> getMapEdit() {return m_mapEditPanel;}
QMap<QString,QPair<MonitorPanel*,QMdiSubWindow*>> getMapMonitor() {return m_mapMonitorPanel;}
protected:
void resizeEvent(QResizeEvent* event) override;
private:
void removePanel(PowerEntity*);
void calculateLauncherVisible();
private:
QMap<QString,QPair<DrawingPanel*,QMdiSubWindow*>> m_mapDrawPanel; //工程模panel
QMap<QString,QPair<EditPanel*,QMdiSubWindow*>> m_mapEditPanel; //编辑时
QMap<QString,QPair<MonitorPanel*,QMdiSubWindow*>> m_mapMonitorPanel; //监控时panel
int _pageIndex;
QString _curPage;
CornerMonitorLauncher* _cornerButton; //简略菜单呼出按钮
LoadMonitorPageDlg* _loadMonitorPageDlg;
};
#endif

View File

@ -127,6 +127,7 @@ public:
void activateModel() {Q_EMIT activatePage(_pageName);} //发送激活信号(点击)
void startHttpRequest(); //开始请求数据(运行时)
void setCavas(DiagramCavas* p) {_cavas = p;} //设置所属顶层容器
DiagramCavas* getCavas() {return _cavas;}
QMap<QUuid,GraphicsProjectModelItem*> getProjectItems(){return _nodeItem;}
QMap<QUuid,GraphicsBaseModelItem*> getBaseModelItems(){return _baseItem;}

View File

@ -0,0 +1,36 @@
#ifndef LOADMONITORPAGEDLG_H
#define LOADMONITORPAGEDLG_H
/*******************加载运行时*********************/
#include <QDialog>
#include <QStandardItem>
QT_BEGIN_NAMESPACE
namespace Ui { class loadMonitorPageDlg; }
QT_END_NAMESPACE
struct DiagramInfo;
class LoadMonitorPageDlg : public QDialog
{
Q_OBJECT
public:
LoadMonitorPageDlg(QWidget *parent = nullptr);
~LoadMonitorPageDlg();
void initial();
void updateItems(QString,QPair<QString,QUuid>);
void clearItems();
signals:
void monitorSelected(DiagramInfo);
public slots:
void onOkClicked();
void onCancelClicked();
private:
QStandardItem* findTopLevelItem(const QString& name); //查找顶层项
private:
Ui::loadMonitorPageDlg *ui;
QStandardItemModel* _pModel;
};
#endif

View File

@ -48,6 +48,7 @@ public:
public slots:
void onRunClicked();
void onStopClicked();
void onSaveClicked();
void onConfigClicked();
void onItemConfigClicked();
void onConncecClicked();
@ -64,6 +65,7 @@ private:
MonitorDetailAttributeDlg* _detailAttributeDlg;
MonitorDisplaySettingDlg* _displaySettingDlg;
QMenu* _menuSetting;
QMenu* _menuFile;
};
#endif

View File

@ -0,0 +1,77 @@
#include "cornerMonitorLauncher.h"
#include <QMdiArea>
#include <QPainter>
#include <QMouseEvent>
#include <QMenu>
CornerMonitorLauncher::CornerMonitorLauncher(QMdiArea* parent)
: QWidget(parent)
,m_mdiArea(parent)
{
setFixedSize(48, 48);
setWindowFlags(Qt::Tool | Qt::FramelessWindowHint);
setAttribute(Qt::WA_TranslucentBackground);
positionAtCorner();
}
CornerMonitorLauncher::~CornerMonitorLauncher()
{
}
void CornerMonitorLauncher::showDlg()
{
show();
positionAtCorner();
}
void CornerMonitorLauncher::paintEvent(QPaintEvent* event)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
// 绘制圆形按钮
painter.setBrush(QColor(255, 255, 255, 240));
painter.setPen(QPen(QColor(200, 200, 200), 1));
painter.drawEllipse(rect().adjusted(1, 1, -1, -1));
// 绘制+号
painter.setPen(QPen(QColor(100, 100, 100), 2));
painter.drawLine(width()/2 - 8, height()/2, width()/2 + 8, height()/2);
painter.drawLine(width()/2, height()/2 - 8, width()/2, height()/2 + 8);
}
void CornerMonitorLauncher::mousePressEvent(QMouseEvent* event)
{
if (event->button() == Qt::LeftButton) {
showQuickMenu();
}
}
void CornerMonitorLauncher::showQuickMenu() {
QMenu menu;
menu.setStyleSheet(R"(
QMenu {
background: white;
border: 1px solid #dee2e6;
border-radius: 4px;
}
QMenu::item {
padding: 6px 20px 6px 10px;
}
QMenu::item:selected {
background: #f8f9fa;
}
)");
menu.addAction("加载运行时监控", [&]{ emit openLoadMonitorDlg();});
menu.exec(mapToGlobal(QPoint(0, height())));
}
void CornerMonitorLauncher::positionAtCorner() {
QPoint topRight = m_mdiArea->mapToGlobal(m_mdiArea->rect().topRight());
int x = topRight.x() - width() - 20;
int y = topRight.y() + 20;
move(x, y);
}

View File

@ -2,6 +2,8 @@
#include <QMessageBox>
#include <QJsonObject>
#include <QStandardItem>
#include <QLibrary>
#include <QMetaMethod>
#include "drawingPanel.h"
#include "monitorPanel.h"
#include "diagramCavas.h"
@ -14,11 +16,13 @@
#include "diagramEditor/editPanel.h"
#include "graphicsDataModel/diagramEditorModel.h"
#include "basePropertyManager.h"
#include <QLibrary>
#include <QMetaMethod>
#include "cornerMonitorLauncher.h"
#include "loadMonitorPageDlg.h"
DiagramCavas::DiagramCavas(QWidget *parent)
: QMdiArea(parent)
,_cornerButton(nullptr)
,_loadMonitorPageDlg(nullptr)
{
_pageIndex = 0;
}
@ -49,6 +53,12 @@ MonitorPanel* DiagramCavas::getMonitorPanel(QString sPage)
return nullptr;
}
void DiagramCavas::updateSubPos()
{
if(_cornerButton)
_cornerButton->positionAtCorner();
}
void DiagramCavas::initial()
{
//todo:读取数据并初始化
@ -57,6 +67,16 @@ void DiagramCavas::initial()
{
TopologyManager::instance().createDiagram(QString::number(info.id),info.name);
}
_cornerButton = new CornerMonitorLauncher(this);
_cornerButton->showDlg();
_loadMonitorPageDlg = new LoadMonitorPageDlg(this);
connect(_cornerButton,&CornerMonitorLauncher::openLoadMonitorDlg,this,[&](){
if(_loadMonitorPageDlg){
updateMonitorListFromDB(1);
_loadMonitorPageDlg->show();
}
});
connect(_loadMonitorPageDlg,&LoadMonitorPageDlg::monitorSelected,this,&DiagramCavas::onSignal_monitorSelected);
}
void DiagramCavas::onSignal_addDrawingPanel(PowerEntity* pItem,DiagramMode mode,QString parent)
@ -94,6 +114,7 @@ void DiagramCavas::onSignal_addDrawingPanel(PowerEntity* pItem,DiagramMode mode,
connect(pModel,&FixedPortsModel::monitorCreated,this,&DiagramCavas::onSignal_monitorCreated);
connect(pModel,&FixedPortsModel::monitorItems,this,&DiagramCavas::onSignal_monitorItemCreated);
}
calculateLauncherVisible();
}
void DiagramCavas::onSignal_addGraphicsItem(modelStateInfo& info)
@ -190,10 +211,6 @@ void DiagramCavas::onSignal_savePage()
break;
}
}
else if(pPanel->getMode() == DM_baseModel)
{
}
}
}
@ -226,11 +243,11 @@ void DiagramCavas::onSignal_loadEdit(const QString& sProject,QUuid uid)
}
}
void DiagramCavas::onSignal_loadMonitor(PowerEntity* p)
void DiagramCavas::onSignal_loadMonitor(PowerEntity* p,QString sParent)
{
if(!m_mapMonitorPanel.contains(p->name()))
{
onSignal_addDrawingPanel(p,DiagramMode::DM_run);
onSignal_addDrawingPanel(p,DiagramMode::DM_run,sParent);
QJsonObject context = DataBase::GetInstance()->getMonitorContextByTag(p->name());
m_mapMonitorPanel[p->name()].first->loadNodes(context);
}
@ -285,10 +302,10 @@ void DiagramCavas::onSignal_panelDelete(const QString& name,int nType)
}
else if(nType == 2){
MonitorPanel* pPanel = m_mapMonitorPanel.take(name).first;
if(m_mapMonitorPanel.isEmpty())
this->removeSubWindow(pPanel);
delete pPanel;
}
calculateLauncherVisible();
}
void DiagramCavas::onSignal_createEntity(EntityInfo info)
@ -435,6 +452,17 @@ void DiagramCavas::removePanel(PowerEntity* pEntity)
}
}
void DiagramCavas::calculateLauncherVisible()
{
if(_cornerButton){
if (m_mapDrawPanel.isEmpty() && m_mapEditPanel.isEmpty() && m_mapMonitorPanel.isEmpty()) {
_cornerButton->setVisible(true);
} else {
_cornerButton->setVisible(false);
}
}
}
void DiagramCavas::onCreateTestBaseModelDiagram()
{
PowerEntity* pEntity;
@ -450,6 +478,12 @@ void DiagramCavas::onCreateTestBaseModelDiagram()
}
}
void DiagramCavas::resizeEvent(QResizeEvent* event)
{
if(_cornerButton)
_cornerButton->positionAtCorner();
}
/*******************************************************/
void DiagramCavas::onSignal_createEditPanel(QString sName,QUuid uid)
@ -598,7 +632,7 @@ void DiagramCavas::onSignal_monitorSelected(DiagramInfo info)
PowerEntity* pEntity = TopologyManager::instance().findDiagram(info.id.toString(),ModelFunctionType::RuntimeModel);
if(pEntity)
{
onSignal_loadMonitor(pEntity);
onSignal_loadMonitor(pEntity,info.sBasePageName);
}
}
@ -626,15 +660,29 @@ void DiagramCavas::onSignal_saveMonitor(QList<QPair<QString,QUuid>> lst)
QMessageBox::information(NULL, QString("提示"), QString::fromWCharArray(L"保存成功"));
}
void DiagramCavas::updateMonitorListFromDB()
void DiagramCavas::updateMonitorListFromDB(int dest)
{
if(dest != 0)
_loadMonitorPageDlg->clearItems();
QList<monitorPageInfo> lstMonitor = DataBase::GetInstance()->getAllMonitor();
for(auto &info:lstMonitor)
{
auto p = TopologyManager::instance().findDiagram(info.uid.toString(),ModelFunctionType::RuntimeModel);
if(!p){
TopologyManager::instance().createDiagram(info.uid.toString(),info.name,ModelFunctionType::RuntimeModel);
emit updateMonitorList(info.parent,qMakePair(info.name,info.uid));
if(dest == 0)
emit updateMonitorList(info.parent,qMakePair(info.name,info.uid));
else{
_loadMonitorPageDlg->updateItems(info.parent,qMakePair(info.name,info.uid));
}
}
else{ //存在直接发送
if(dest == 0)
emit updateMonitorList(info.parent,qMakePair(info.name,info.uid));
else{
_loadMonitorPageDlg->updateItems(info.parent,qMakePair(info.name,info.uid));
}
}
}
}

View File

@ -0,0 +1,104 @@
#include "loadMonitorPageDlg.h"
#include "ui_loadMonitorPageDlg.h"
#include "global.h"
#include "tools.h"
#include <QUuid>
LoadMonitorPageDlg::LoadMonitorPageDlg(QWidget *parent)
: QDialog(parent)
, ui(new Ui::loadMonitorPageDlg)
,_pModel(nullptr)
{
ui->setupUi(this);
this->setWindowFlags(Qt::FramelessWindowHint | windowFlags());
initial();
}
LoadMonitorPageDlg::~LoadMonitorPageDlg()
{
delete ui;
}
void LoadMonitorPageDlg::initial()
{
_pModel = new QStandardItemModel(this);
ui->treeView->setModel(_pModel);
ui->treeView->setHeaderHidden(true);
connect(ui->btn_ok,&QPushButton::clicked,this,&LoadMonitorPageDlg::onOkClicked);
connect(ui->btn_cancel,&QPushButton::clicked,this,&LoadMonitorPageDlg::onCancelClicked);
}
void LoadMonitorPageDlg::updateItems(QString sProj,QPair<QString,QUuid> pair)
{
QStandardItem* topLevelItem = findTopLevelItem(sProj);
if (topLevelItem) {
// 如果存在,直接在该项下插入子项
QStandardItem* childItem = new QStandardItem(pair.first);
childItem->setData(pair.second);
topLevelItem->appendRow(childItem);
} else {
// 如果不存在,创建新的顶层项并插入子项
QStandardItem* newTopLevelItem = new QStandardItem(sProj);
QStandardItem* childItem = new QStandardItem(pair.first);
childItem->setData(pair.second);
newTopLevelItem->appendRow(childItem);
_pModel->appendRow(newTopLevelItem);
}
ui->treeView->expandAll();
}
void LoadMonitorPageDlg::clearItems()
{
if(_pModel){
QStandardItem *root = _pModel->invisibleRootItem(); //先清空model
int rowCount = root->rowCount();
if (rowCount > 0) {
_pModel->removeRows(0, rowCount);
}
}
}
void LoadMonitorPageDlg::onOkClicked()
{
QItemSelectionModel* selectionModel = ui->treeView->selectionModel();
if (selectionModel && selectionModel->hasSelection()) {
// 获取当前选中的索引
QModelIndex currentIndex = selectionModel->currentIndex();
if (currentIndex.isValid()) {
QStandardItem* item = _pModel->itemFromIndex(currentIndex);
int nLevel = getLevel(item);
if(nLevel == 0 || nLevel == -1) //顶层不响应
return;
QStandardItem* parent = item->parent();
if(item)
{
DiagramInfo info;
info.id = item->data(Qt::UserRole+1).toUuid();
info.sName = item->text();
info.sBasePageName = parent->text();
emit monitorSelected(info);
}
hide();
}
}
}
void LoadMonitorPageDlg::onCancelClicked()
{
hide();
}
QStandardItem* LoadMonitorPageDlg::findTopLevelItem(const QString& name)
{
for (int i = 0; i < _pModel->rowCount(); ++i) {
QStandardItem* item = _pModel->item(i);
if (item && item->text() == name) {
return item;
}
}
return nullptr;
}

View File

@ -5,6 +5,7 @@
#include <QToolBar>
#include <QVBoxLayout>
#include <QJsonDocument>
#include <QToolButton>
#include "graphicsDataModel/fixedPortsModel.h"
#include "graphicsItem/graphicsBaseItem.h"
#include "powerEntity.h"
@ -19,6 +20,7 @@
#include "monitorDisplaySettingDlg.h"
#include "dataBase.h"
#include "projectModelManager.h"
#include "diagramCavas.h"
MonitorPanel::MonitorPanel(PowerEntity* pEntity,QWidget *parent,DiagramMode mode)
: BaseDrawingPanel(pEntity,parent,mode)
@ -29,6 +31,7 @@ MonitorPanel::MonitorPanel(PowerEntity* pEntity,QWidget *parent,DiagramMode mode
,_menuSetting(nullptr)
,_detailAttributeDlg(nullptr)
,_displaySettingDlg(nullptr)
,_menuFile(nullptr)
{
m_pStatusBar->setButtonVisible(false);
initial();
@ -62,13 +65,27 @@ void MonitorPanel::createToolBar()
_toolBar = new QToolBar(this);
_toolBar->setStyleSheet("QToolBar { background-color: palette(window); border: none; }");
QAction *runAction = new QAction("运行", this);
connect(runAction, &QAction::triggered, this, &MonitorPanel::onRunClicked);
_toolBar->addAction(runAction);
_menuFile = new QMenu("文件", this);
QAction *stopAction = new QAction("停止", this);
// 保存操作
QAction *saveAction = _menuFile->addAction("保存");
connect(saveAction, &QAction::triggered, this, &MonitorPanel::onSaveClicked);
_menuFile->addSeparator(); // 添加分隔线
// 运行操作
QAction *runAction = _menuFile->addAction("运行");
connect(runAction, &QAction::triggered, this, &MonitorPanel::onRunClicked);
// 停止操作
QAction *stopAction = _menuFile->addAction("停止");
connect(stopAction, &QAction::triggered, this, &MonitorPanel::onStopClicked);
_toolBar->addAction(stopAction);
QToolButton *fileButton = new QToolButton(this);
fileButton->setText("文件");
fileButton->setMenu(_menuFile);
fileButton->setPopupMode(QToolButton::InstantPopup);
_toolBar->addWidget(fileButton);
QAction *configAction = new QAction("参数配置", this);
connect(configAction, &QAction::triggered, this, &MonitorPanel::onConfigClicked);
@ -398,6 +415,11 @@ void MonitorPanel::onStopClicked()
}
void MonitorPanel::onSaveClicked()
{
_pModel->getCavas()->onSignal_savePage();
}
void MonitorPanel::onConfigClicked()
{
_pConfigDlg->show();

View File

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>loadMonitorPageDlg</class>
<widget class="QDialog" name="loadMonitorPageDlg">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>182</width>
<height>355</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QWidget" name="widget" native="true">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>21</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(192, 192, 192);</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="topMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label">
<property name="styleSheet">
<string notr="true">color: rgb(4, 4, 4);
font: 12pt &quot;Microsoft YaHei UI&quot;;</string>
</property>
<property name="text">
<string>载入运行时</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>103</width>
<height>18</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QTreeView" name="treeView"/>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QPushButton" name="btn_ok">
<property name="text">
<string>确定</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btn_cancel">
<property name="text">
<string>取消</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -2684,9 +2684,12 @@ QUuid DataBase::getMonitorIdByName(QString name)
bool DataBase::updateMonitor(QString tag,QJsonObject context)
{
QJsonDocument contextDoc(context);
QString strCon = contextDoc.toJson(QJsonDocument::Compact);
QString strSQL = "UPDATE diagramui_monitor_page SET context = ? WHERE tag = ?";
QVariantList params;
params.append(context);
params.append(strCon);
params.append(tag);
try

View File

@ -36,7 +36,7 @@ public:
protected:
virtual void closeEvent(QCloseEvent* event) override;
virtual void changeEvent(QEvent* event) override;
virtual void moveEvent(QMoveEvent *event) override;
private:
void initializeDockUi();
void initializeAction();

View File

@ -18,8 +18,6 @@
#include "graphicElementsPanel.h"
#include "operationCommand.h"
#include "electricElementsBox.h"
#include "electricElementsPanel.h"
#include "toolBox.h"
#include "loadPageDlg.h"
#include "projectModelDlg.h"
#include "topologyView.h"
@ -75,6 +73,12 @@ void CMainWindow::changeEvent(QEvent* event)
//m_pDrawingPanel->grahpicsViewZoomFit();
}
void CMainWindow::moveEvent(QMoveEvent *event)
{
if(m_pDiagramCavas)
m_pDiagramCavas->updateSubPos();
}
void CMainWindow::initializeDockUi()
{
m_pElectricElementsBox = new ElectricElementsBox();
@ -117,7 +121,7 @@ void CMainWindow::initializeDockUi()
m_pMonitorItemsDock->hide();
m_pMonitorPagesDock->hide();
m_pDiagramCavas = new DiagramCavas();
m_pDiagramCavas = new DiagramCavas(this);
m_pDiagramCavas->initial();
this->setCentralWidget(m_pDiagramCavas);
connect(m_pElectricElementsBox,&ElectricElementsBox::addEletricItem,m_pDiagramCavas,&DiagramCavas::onSignal_addGraphicsItem);

View File

@ -59,6 +59,7 @@ void MonitorPagesDlg::onItemClicked(const QModelIndex &index)
DiagramInfo info;
info.id = item->data(Qt::UserRole+1).toUuid();
info.sName = item->text();
info.sBasePageName = parent->text();
emit monitorSelected(info);
}
}