auto diagram v0.03
This commit is contained in:
parent
b39b15d551
commit
2ff639f9af
|
|
@ -51,6 +51,7 @@ set(H_HEADER_FILES
|
|||
include/topologyView.h
|
||||
include/diagramView.h
|
||||
include/topologyTree.h
|
||||
include/createEditor.h
|
||||
|
||||
common/include/global.h
|
||||
common/include/tools.h
|
||||
|
|
@ -78,6 +79,7 @@ set(CPP_SOURCE_FILES
|
|||
source/topologyView.cpp
|
||||
source/diagramView.cpp
|
||||
source/topologyTree.cpp
|
||||
source/createEditor.cpp
|
||||
|
||||
common/source/httpInterface.cpp
|
||||
common/source/global.cpp
|
||||
|
|
@ -91,6 +93,7 @@ set(UI_FILES
|
|||
ui/projectModelDlg.ui
|
||||
ui/topologyView.ui
|
||||
ui/diagramView.ui
|
||||
ui/createEditor.ui
|
||||
)
|
||||
|
||||
# 包含源文件目录
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@
|
|||
const double g_dGriaphicsScene_Width = 800;
|
||||
const double g_dGriaphicsScene_Height = 600;
|
||||
|
||||
const int g_dEditorItem_Width = 150;
|
||||
const int g_dEditorItem_Height = 80;
|
||||
//Q_NAMESPACE
|
||||
enum GraphicsItemType
|
||||
{
|
||||
|
|
@ -277,6 +279,25 @@ struct gridInfo //grid
|
|||
QString uuid;
|
||||
QMap<QString,zoneInfo> zoneMap;
|
||||
};*/
|
||||
//===================组态编辑器使用================
|
||||
struct DiagramEditorWizardInfo //组态编辑向导信息
|
||||
{
|
||||
int bus_220_num = 0;
|
||||
int bus_220_division = 1;
|
||||
int bus_220_circuit = 0;
|
||||
int bus_110_num = 0;
|
||||
int bus_110_division = 1;
|
||||
int bus_110_circuit = 0;
|
||||
int bus_35_num = 0;
|
||||
int bus_35_division = 1;
|
||||
int bus_35_circuit = 0;
|
||||
};
|
||||
|
||||
enum class DiagramEditorStructType
|
||||
{
|
||||
bus, //母线
|
||||
rowData //母线对应的一行数据
|
||||
};
|
||||
|
||||
//==================组态图使用=====================
|
||||
// 基础实体类型(电力元素或组态图)
|
||||
|
|
|
|||
|
|
@ -18,6 +18,15 @@ set(DIAGRAMCAVAS_HEADER_FILES
|
|||
include/baseContentDlg.h
|
||||
include/ptExtraInfoDlg.h
|
||||
include/ctExtraInfoDlg.h
|
||||
include/diagramEditor/editPanel.h
|
||||
include/diagramEditor/editView.h
|
||||
include/diagramEditor/editScene.h
|
||||
include/diagramEditor/editRowData.h
|
||||
include/diagramEditor/editMainRect.h
|
||||
include/diagramEditor/editItem.h
|
||||
include/diagramEditor/editBus.h
|
||||
include/diagramEditor/editBaseStruct.h
|
||||
include/diagramEditor/diagramEditorWizard.h
|
||||
include/graphicsDataModel/baseModel.h
|
||||
include/graphicsDataModel/fixedPortsModel.h
|
||||
include/graphicsItem/electricConnectLineItem.h
|
||||
|
|
@ -68,6 +77,15 @@ set(DIAGRAMCAVAS_SOURCE_FILES
|
|||
source/baseContentDlg.cpp
|
||||
source/ptExtraInfoDlg.cpp
|
||||
source/ctExtraInfoDlg.cpp
|
||||
source/diagramEditor/editPanel.cpp
|
||||
source/diagramEditor/editView.cpp
|
||||
source/diagramEditor/editScene.cpp
|
||||
source/diagramEditor/editRowData.cpp
|
||||
source/diagramEditor/editMainRect.cpp
|
||||
source/diagramEditor/editItem.cpp
|
||||
source/diagramEditor/editBus.cpp
|
||||
source/diagramEditor/editBaseStruct.cpp
|
||||
source/diagramEditor/diagramEditorWizard.cpp
|
||||
source/graphicsDataModel/baseModel.cpp
|
||||
source/graphicsDataModel/fixedPortsModel.cpp
|
||||
source/graphicsItem/electricConnectLineItem.cpp
|
||||
|
|
@ -103,6 +121,8 @@ set(UI_FILES
|
|||
ui/baseInfoDlg.ui
|
||||
ui/ptExtraInfoDlg.ui
|
||||
ui/ctExtraInfoDlg.ui
|
||||
ui/editorSettingDlg.ui
|
||||
ui/diagramEditorWizard.ui
|
||||
)
|
||||
|
||||
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@ QT_END_NAMESPACE
|
|||
|
||||
class DrawingPanel;
|
||||
class PowerEntity;
|
||||
class DiagramEditorWizard;
|
||||
class EditPanel;
|
||||
|
||||
class DIAGRAM_DESIGNER_PUBLIC DiagramCavas : public QMdiArea
|
||||
{
|
||||
|
|
@ -44,12 +46,19 @@ public slots:
|
|||
void onSignal_changeDiagram(DiagramInfo);
|
||||
void onSignal_deleteDiagram(DiagramInfo);
|
||||
void onSignal_selectDiagram(DiagramInfo);
|
||||
|
||||
/******************************生成组态***********************************/
|
||||
void onSignal_createEditPanel(QString);
|
||||
EditPanel* onSignal_addEditPanel(QString);
|
||||
void onSignal_addEditWizard(QString);
|
||||
void onSignal_wizardFinished(DiagramEditorWizardInfo);
|
||||
private:
|
||||
void removePanel(PowerEntity*);
|
||||
private:
|
||||
QMap<QString,QPair<DrawingPanel*,QMdiSubWindow*>> m_mapDrawPanel;
|
||||
int _pageIndex;
|
||||
QString _curPage;
|
||||
DiagramEditorWizard* _pEditorWizard;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -0,0 +1,27 @@
|
|||
#ifndef DIAGRAMEDITORWIZARD_H
|
||||
#define DIAGRAMEDITORWIZARD_H
|
||||
|
||||
#include <QDialog>
|
||||
#include "global.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
namespace Ui { class diagramEditorWizard; }
|
||||
QT_END_NAMESPACE
|
||||
|
||||
|
||||
class DiagramEditorWizard : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
DiagramEditorWizard(QWidget *parent = nullptr);
|
||||
~DiagramEditorWizard();
|
||||
signals:
|
||||
void wizardFinish(DiagramEditorWizardInfo);
|
||||
protected:
|
||||
void onOkClicked();
|
||||
void onCancelClicked();
|
||||
private:
|
||||
Ui::diagramEditorWizard *ui;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
#ifndef EDITBASESTRUCT_H
|
||||
#define EDITBASESTRUCT_H
|
||||
|
||||
//编辑器基础结构,母线,母线下的一行回路
|
||||
#include <QGraphicsWidget>
|
||||
#include "global.h"
|
||||
|
||||
class EditBaseStruct : public QGraphicsWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
EditBaseStruct(QGraphicsItem *parent = 0);
|
||||
virtual ~EditBaseStruct();
|
||||
void setDataType(DiagramEditorStructType t) {_dataType = t;}
|
||||
DiagramEditorStructType getDataType() {return _dataType;}
|
||||
protected:
|
||||
DiagramEditorStructType _dataType;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
#ifndef EDITBUS_H
|
||||
#define EDITBUS_H
|
||||
//编辑器母线单元
|
||||
#include <QGraphicsWidget>
|
||||
#include "diagramEditor/editBaseStruct.h"
|
||||
|
||||
class EditBus : public EditBaseStruct
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
EditBus(QGraphicsItem *parent = nullptr);
|
||||
~EditBus();
|
||||
|
||||
void setupUI();
|
||||
void setName(QString s) {_sName = s;}
|
||||
protected:
|
||||
virtual void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) override;
|
||||
private:
|
||||
QString _sName;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
#ifndef EDITITEM_H
|
||||
#define EDITITEM_H
|
||||
//编辑器的基本图元
|
||||
#include <QGraphicsWidget>
|
||||
|
||||
class QLineEdit;
|
||||
class QComboBox;
|
||||
class QGraphicsGridLayout;
|
||||
class QLabel;
|
||||
|
||||
class EditItem : public QGraphicsWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
EditItem(QGraphicsItem *parent = nullptr);
|
||||
~EditItem();
|
||||
|
||||
void setupUI();
|
||||
protected:
|
||||
virtual void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) override;
|
||||
virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override;
|
||||
private:
|
||||
QLineEdit* _EditorName;
|
||||
QComboBox* _ComboType;
|
||||
QGraphicsGridLayout* _layout;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
#ifndef EDITMAINRECT_H
|
||||
#define EDITMAINRECT_H
|
||||
|
||||
//编辑器操作范围
|
||||
#include <QGraphicsWidget>
|
||||
|
||||
class EditMainRect : public QGraphicsWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
EditMainRect(QGraphicsItem *parent = 0);
|
||||
virtual ~EditMainRect();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
#ifndef EDITPANEL_H
|
||||
#define EDITPANEL_H
|
||||
//编辑文本项生成组态图
|
||||
#include <QWidget>
|
||||
#include "global.h"
|
||||
|
||||
class EditView;
|
||||
class EditScene;
|
||||
class QVBoxLayout;
|
||||
//class QGraphicsGridLayout;
|
||||
class QGraphicsLinearLayout;
|
||||
class QPushButton;
|
||||
class EditMainRect;
|
||||
class EditRowData;
|
||||
class EditBaseStruct;
|
||||
|
||||
class EditPanel : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
EditPanel(QWidget *parent = nullptr);
|
||||
~EditPanel();
|
||||
|
||||
void initByWizardInfo(DiagramEditorWizardInfo);
|
||||
protected:
|
||||
void resizeEvent(QResizeEvent* e);
|
||||
public slots:
|
||||
void onAddCLicked();
|
||||
void onWidthChanged(int width);
|
||||
private:
|
||||
void initial();
|
||||
int calHeight();
|
||||
private:
|
||||
EditView* m_pEditView;
|
||||
EditScene* m_pEditScene;
|
||||
QVBoxLayout* _layout;
|
||||
EditMainRect* _mainWidget;
|
||||
//QGraphicsGridLayout* _widgetLayout;
|
||||
QGraphicsLinearLayout* _widgetLayout;
|
||||
QGraphicsProxyWidget* m_addBtnPro;
|
||||
int _maxWidth;
|
||||
int _maxHeight;
|
||||
int _curRow;
|
||||
QList<EditRowData*> _lstData;
|
||||
QMap<int,QMap<int,EditBaseStruct*>> _mapStruct;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
#ifndef EDITROWDATA_H
|
||||
#define EDITROWDATA_H
|
||||
//文本编辑器中每行数据
|
||||
#include <QGraphicsWidget>
|
||||
#include <QGraphicsLinearLayout>
|
||||
#include "diagramEditor/editBaseStruct.h"
|
||||
|
||||
class QPushButton;
|
||||
class QGraphicsProxyWidget;
|
||||
class EditItem;
|
||||
|
||||
class EditRowData : public EditBaseStruct
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
EditRowData(QGraphicsItem *parent = nullptr);
|
||||
~EditRowData();
|
||||
|
||||
int addItems(int);
|
||||
signals:
|
||||
void widthChanged(int width);
|
||||
public slots:
|
||||
void addItem();
|
||||
private:
|
||||
int calWidth();
|
||||
QGraphicsLinearLayout* m_layout;
|
||||
QPushButton* _btnAdd;
|
||||
QList<EditItem*> _lstItem;;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
#ifndef EDITSCENE_H
|
||||
#define EDITSCENE_H
|
||||
|
||||
#include <QGraphicsScene>
|
||||
|
||||
class EditScene : public QGraphicsScene
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
EditScene(QObject *parent = 0);
|
||||
virtual ~EditScene();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
#ifndef EDITVIEW_H
|
||||
#define EDITVIEW_H
|
||||
|
||||
#include <QGraphicsView>
|
||||
|
||||
class EditView : public QGraphicsView
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit EditView(QWidget *parent = 0);
|
||||
virtual ~EditView();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
#ifndef TOPOLOGYTREE_H
|
||||
#define TOPOLOGYTREE_H
|
||||
|
||||
#include <QTreeView>
|
||||
|
||||
/***************拖拽实现*************/
|
||||
class TopologyTree : public QTreeView
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
TopologyTree(QWidget *parent = nullptr);
|
||||
~TopologyTree();
|
||||
protected:
|
||||
void mouseMoveEvent(QMouseEvent *event) override;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -4,17 +4,20 @@
|
|||
#include <QStandardItem>
|
||||
#include "drawingPanel.h"
|
||||
#include "diagramCavas.h"
|
||||
#include "mainwindow.h"
|
||||
//#include "mainwindow.h"
|
||||
#include "dataBase.h"
|
||||
#include "graphicsItem/graphicsBaseItem.h"
|
||||
#include "topologyManager.h"
|
||||
#include "powerEntity.h"
|
||||
#include "diagramEditor/diagramEditorWizard.h"
|
||||
#include "componentIconManager.h"
|
||||
#include "diagramEditor/editPanel.h"
|
||||
|
||||
DiagramCavas::DiagramCavas(QWidget *parent)
|
||||
: QMdiArea(parent)
|
||||
{
|
||||
_pageIndex = 0;
|
||||
_pEditorWizard = nullptr;
|
||||
}
|
||||
|
||||
DiagramCavas::~DiagramCavas()
|
||||
|
|
@ -313,3 +316,38 @@ void DiagramCavas::removePanel(PowerEntity* pEntity)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************/
|
||||
|
||||
void DiagramCavas::onSignal_createEditPanel(QString sName)
|
||||
{
|
||||
//onSignal_addEditPanel(sName);
|
||||
onSignal_addEditWizard(sName);
|
||||
}
|
||||
|
||||
EditPanel* DiagramCavas::onSignal_addEditPanel(QString sName)
|
||||
{
|
||||
EditPanel* pPanel = new EditPanel(this);
|
||||
pPanel->setWindowTitle(_curPage);
|
||||
|
||||
QMdiSubWindow* pSub = this->addSubWindow(pPanel);
|
||||
pPanel->show();
|
||||
return pPanel;
|
||||
}
|
||||
|
||||
void DiagramCavas::onSignal_addEditWizard(QString name)
|
||||
{
|
||||
if(_pEditorWizard == nullptr){
|
||||
_pEditorWizard = new DiagramEditorWizard(this);
|
||||
connect(_pEditorWizard,&DiagramEditorWizard::wizardFinish,this,[&,name](DiagramEditorWizardInfo info){
|
||||
EditPanel* pPanel = onSignal_addEditPanel(name);
|
||||
pPanel->initByWizardInfo(info);
|
||||
});
|
||||
}
|
||||
_pEditorWizard->show();
|
||||
}
|
||||
|
||||
void DiagramCavas::onSignal_wizardFinished(DiagramEditorWizardInfo info)
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,42 @@
|
|||
#include "diagramEditor/diagramEditorWizard.h"
|
||||
#include "ui_diagramEditorWizard.h"
|
||||
|
||||
DiagramEditorWizard::DiagramEditorWizard(QWidget *parent)
|
||||
: QDialog(parent)
|
||||
, ui(new Ui::diagramEditorWizard)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
this->setWindowFlags(Qt::FramelessWindowHint | windowFlags());
|
||||
ui->stackedWidget_btn->setCurrentIndex(1);
|
||||
ui->btn_last->setVisible(false);
|
||||
connect(ui->btn_ok,&QPushButton::clicked,this,&DiagramEditorWizard::onOkClicked);
|
||||
connect(ui->btn_cancel,&QPushButton::clicked,this,&DiagramEditorWizard::onCancelClicked);
|
||||
}
|
||||
|
||||
DiagramEditorWizard::~DiagramEditorWizard()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void DiagramEditorWizard::onOkClicked()
|
||||
{
|
||||
DiagramEditorWizardInfo info;
|
||||
info.bus_220_num = ui->cb_num_220->currentIndex();
|
||||
info.bus_220_division = ui->cb_div_220->currentText().toInt();
|
||||
info.bus_220_circuit = ui->sp_circuit_220->value();
|
||||
|
||||
info.bus_110_num = ui->cb_num_110->currentIndex();
|
||||
info.bus_110_division = ui->cb_div_110->currentText().toInt();
|
||||
info.bus_110_circuit = ui->sp_circuit_110->value();
|
||||
|
||||
info.bus_35_num = ui->cb_num_35->currentIndex();
|
||||
info.bus_35_division = ui->cb_div_35->currentText().toInt();
|
||||
info.bus_35_circuit = ui->sp_circuit_35->value();
|
||||
emit wizardFinish(info);
|
||||
hide();
|
||||
}
|
||||
|
||||
void DiagramEditorWizard::onCancelClicked()
|
||||
{
|
||||
hide();
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
#include "diagramEditor/editBaseStruct.h"
|
||||
|
||||
EditBaseStruct::EditBaseStruct(QGraphicsItem *parent)
|
||||
: QGraphicsWidget(parent)
|
||||
{
|
||||
|
||||
}
|
||||
EditBaseStruct::~EditBaseStruct()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
#include <QPainter>
|
||||
#include "diagramEditor/editBus.h"
|
||||
|
||||
EditBus::EditBus(QGraphicsItem *parent)
|
||||
: EditBaseStruct(parent)
|
||||
{
|
||||
setupUI();
|
||||
}
|
||||
EditBus::~EditBus()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void EditBus::setupUI()
|
||||
{
|
||||
setDataType(DiagramEditorStructType::bus);
|
||||
}
|
||||
|
||||
void EditBus::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
|
||||
{
|
||||
QRectF rec = boundingRect();
|
||||
rec.adjust(0,rec.height()*0.45,0,-rec.height()*0.45);
|
||||
painter->fillRect(rec, Qt::black);
|
||||
painter->drawText(QPointF(boundingRect().x(),boundingRect().y()),_sName);
|
||||
//painter->fillRect(boundingRect(), QColor(224, 238, 238)); // 背景
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
#include <QGraphicsGridLayout>
|
||||
#include <QLabel>
|
||||
#include <QGraphicsProxyWidget>
|
||||
#include <QLineEdit>
|
||||
#include <QComboBox>
|
||||
#include <QPainter>
|
||||
#include <QSizePolicy>
|
||||
#include "diagramEditor/editItem.h"
|
||||
|
||||
EditItem::EditItem(QGraphicsItem *parent)
|
||||
: QGraphicsWidget(parent)
|
||||
{
|
||||
_layout = new QGraphicsGridLayout(this);
|
||||
setupUI();
|
||||
}
|
||||
EditItem::~EditItem()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void EditItem::setupUI()
|
||||
{
|
||||
QLabel* pName = new QLabel("名称");
|
||||
QGraphicsProxyWidget* proLabelName = new QGraphicsProxyWidget;
|
||||
proLabelName->setWidget(pName);
|
||||
_layout->addItem(proLabelName,0,0);
|
||||
|
||||
QGraphicsProxyWidget* proLeName = new QGraphicsProxyWidget;
|
||||
_EditorName = new QLineEdit();
|
||||
proLeName->setWidget(_EditorName);
|
||||
_layout->addItem(proLeName,0,1);
|
||||
|
||||
QLabel* pType = new QLabel("类型");
|
||||
QGraphicsProxyWidget* proLabelType = new QGraphicsProxyWidget;
|
||||
proLabelType->setWidget(pType);
|
||||
_layout->addItem(proLabelType,1,0);
|
||||
|
||||
QGraphicsProxyWidget* proComboType = new QGraphicsProxyWidget;
|
||||
_ComboType = new QComboBox();
|
||||
proComboType->setWidget(_ComboType);
|
||||
_layout->addItem(proComboType,1,1);
|
||||
|
||||
//_layout->setSpacing(0);
|
||||
//_layout->setSizePolicy(QSizePolicy());
|
||||
}
|
||||
|
||||
void EditItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
|
||||
{
|
||||
painter->fillRect(boundingRect(), QColor(224, 238, 238)); // 背景
|
||||
painter->drawRect(boundingRect());
|
||||
}
|
||||
|
||||
void EditItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
|
||||
{
|
||||
int a = 1;
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
#include "diagramEditor/editMainRect.h"
|
||||
|
||||
EditMainRect::EditMainRect(QGraphicsItem *parent)
|
||||
: QGraphicsWidget(parent)
|
||||
{
|
||||
|
||||
}
|
||||
EditMainRect::~EditMainRect()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,175 @@
|
|||
#include <QVBoxLayout>
|
||||
#include <QGraphicsWidget>
|
||||
#include <QGraphicsGridLayout>
|
||||
#include <QPushButton>
|
||||
#include <QGraphicsProxyWidget>
|
||||
#include "diagramEditor/editPanel.h"
|
||||
#include "diagramEditor/editScene.h"
|
||||
#include "diagramEditor/editView.h"
|
||||
#include "diagramEditor/editRowData.h"
|
||||
#include "diagramEditor/editMainRect.h"
|
||||
#include "diagramEditor/editBus.h"
|
||||
#include "global.h"
|
||||
#include <QDebug>
|
||||
|
||||
EditPanel::EditPanel(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
_maxWidth = 0;
|
||||
_maxHeight = 0;
|
||||
_curRow = 0;
|
||||
_layout = new QVBoxLayout(this);
|
||||
m_pEditScene = new EditScene(this);
|
||||
//设置场景大小.前两个参数为scene的坐标远点,设置到view的中心点后,无论view如何缩放,secne的坐标原点都不会动,方便后续的位置计算
|
||||
//m_pEditScene->setSceneRect(-g_dGriaphicsScene_Width / 2, -g_dGriaphicsScene_Height / 2, g_dGriaphicsScene_Width, g_dGriaphicsScene_Height);
|
||||
m_pEditScene->setSceneRect(0, 0, g_dGriaphicsScene_Width*4, g_dGriaphicsScene_Height*4);
|
||||
|
||||
m_pEditView = new EditView(this);
|
||||
m_pEditView->setScene(m_pEditScene);
|
||||
_layout->addWidget(m_pEditView);
|
||||
initial();
|
||||
setStyleSheet("backGround-color:rgb(112,128,144);");
|
||||
}
|
||||
|
||||
EditPanel::~EditPanel()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void EditPanel::initByWizardInfo(DiagramEditorWizardInfo info)
|
||||
{
|
||||
if(info.bus_220_num != 0)
|
||||
{
|
||||
if(info.bus_220_num == 1)
|
||||
{
|
||||
QString pre = "220KVⅠ母分";
|
||||
QMap<int,EditBaseStruct*> mapBus; //母线
|
||||
QMap<int,EditBaseStruct*> mapRowData; //一段母线对应一行数据
|
||||
int colCount = 0;
|
||||
|
||||
QGraphicsLinearLayout* layoutBus = new QGraphicsLinearLayout();
|
||||
QGraphicsLinearLayout* layoutRowData = new QGraphicsLinearLayout();
|
||||
layoutBus->setSpacing(40);
|
||||
layoutRowData->setSpacing(20);
|
||||
|
||||
int nPer = 0;
|
||||
int nLeft = 0;
|
||||
|
||||
nPer = info.bus_220_circuit/info.bus_220_division;
|
||||
nLeft = info.bus_220_circuit%info.bus_220_division;
|
||||
for(int i = 0; i <info.bus_220_division;++i){
|
||||
EditBus* pBus = new EditBus(_mainWidget);
|
||||
EditRowData* rowData = new EditRowData(_mainWidget);
|
||||
pBus->setName(pre+QString::number(i+1));
|
||||
layoutBus->addItem(pBus);
|
||||
layoutRowData->addItem(rowData);
|
||||
layoutBus->setMaximumHeight(g_dEditorItem_Height);
|
||||
layoutRowData->setMaximumHeight(g_dEditorItem_Height);
|
||||
|
||||
int nMinWidth = -1; //每个结构大小
|
||||
if(nLeft > 0){
|
||||
nMinWidth = rowData->addItems(nPer+1);
|
||||
nLeft -= 1;
|
||||
}
|
||||
else{
|
||||
nMinWidth = rowData->addItems(nPer);
|
||||
}
|
||||
if(nMinWidth == -1)
|
||||
pBus->setMinimumWidth(g_dEditorItem_Width);
|
||||
else
|
||||
pBus->setMinimumWidth(nMinWidth);
|
||||
|
||||
colCount += 1;
|
||||
}
|
||||
layoutBus->addStretch();
|
||||
layoutRowData->addStretch();
|
||||
_widgetLayout->addItem(layoutBus);
|
||||
_widgetLayout->addItem(layoutRowData);
|
||||
}
|
||||
}
|
||||
_widgetLayout->addStretch();
|
||||
}
|
||||
|
||||
void EditPanel::resizeEvent(QResizeEvent* e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void EditPanel::onAddCLicked()
|
||||
{
|
||||
/*EditRowData* row = new EditRowData(_mainWidget);
|
||||
connect(row,&EditRowData::widthChanged,this,&EditPanel::onWidthChanged);
|
||||
int nRow = _widgetLayout->rowCount();
|
||||
_widgetLayout->addItem(row,nRow,1);
|
||||
_widgetLayout->removeItem(m_addBtnPro);
|
||||
_widgetLayout->addItem(m_addBtnPro,nRow,0);
|
||||
_widgetLayout->setAlignment(m_addBtnPro,Qt::AlignCenter);
|
||||
_widgetLayout->setColumnMaximumWidth(1,g_dEditorItem_Width);
|
||||
_widgetLayout->setRowMaximumHeight(nRow,g_dEditorItem_Height);
|
||||
_widgetLayout->setColumnMinimumWidth(1,g_dEditorItem_Width);
|
||||
_widgetLayout->setRowMinimumHeight(nRow,g_dEditorItem_Height);
|
||||
|
||||
_lstData.append(row);
|
||||
int height = calHeight();
|
||||
if(height > _maxHeight){
|
||||
QRectF rec = m_pEditScene->itemsBoundingRect();
|
||||
if(rec.width() < _maxWidth)
|
||||
m_pEditScene->setSceneRect(rec.x(),rec.y(),_maxWidth,height);
|
||||
else
|
||||
m_pEditScene->setSceneRect(rec); // 强制更新场景尺寸
|
||||
m_pEditView->viewport()->update();
|
||||
_maxHeight = height;
|
||||
}
|
||||
qDebug()<<m_pEditScene->itemsBoundingRect();*/
|
||||
}
|
||||
|
||||
void EditPanel::onWidthChanged(int width)
|
||||
{
|
||||
if(_maxWidth < width)
|
||||
{
|
||||
_maxWidth = width;
|
||||
int x = _mainWidget->geometry().width();
|
||||
int y = _mainWidget->geometry().y();
|
||||
_mainWidget->setGeometry(x,y,_maxWidth,_maxHeight);
|
||||
//m_pEditScene->setSceneRect(m_pEditScene->itemsBoundingRect());
|
||||
m_pEditScene->setSceneRect(x,y,_maxWidth,_maxHeight);
|
||||
m_pEditView->viewport()->update();
|
||||
//qDebug()<<m_pEditScene->sceneRect();
|
||||
}
|
||||
}
|
||||
|
||||
void EditPanel::initial()
|
||||
{
|
||||
_mainWidget = new EditMainRect;
|
||||
_widgetLayout = new QGraphicsLinearLayout(Qt::Vertical);
|
||||
_widgetLayout->setSpacing(6);
|
||||
_mainWidget->setLayout(_widgetLayout);
|
||||
m_pEditScene->addItem(_mainWidget);
|
||||
_mainWidget->setGeometry(m_pEditScene->sceneRect());
|
||||
_maxWidth = _mainWidget->rect().width();
|
||||
_maxHeight = _mainWidget->rect().height();
|
||||
m_pEditView->centerOn(0,0);
|
||||
|
||||
// 添加主按钮
|
||||
/*QPushButton* m_addBtn = new QPushButton("Add Row");
|
||||
m_addBtnPro = new QGraphicsProxyWidget;
|
||||
m_addBtnPro->setWidget(m_addBtn);
|
||||
_widgetLayout->addItem(m_addBtnPro,0,0);
|
||||
_widgetLayout->setAlignment(m_addBtnPro,Qt::AlignCenter);
|
||||
_widgetLayout->activate();
|
||||
_widgetLayout->setColumnMaximumWidth(0,g_dEditorItem_Width);
|
||||
_widgetLayout->setRowMaximumHeight(0,g_dEditorItem_Height);
|
||||
|
||||
connect(m_addBtn,&QPushButton::clicked,this,&EditPanel::onAddCLicked);*/
|
||||
}
|
||||
|
||||
int EditPanel::calHeight()
|
||||
{
|
||||
int height = 0;
|
||||
for(auto &data:_lstData)
|
||||
{
|
||||
height += data->rect().height()+6+18;
|
||||
}
|
||||
height += m_addBtnPro->rect().height();
|
||||
return height;
|
||||
}
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
#include <QLabel>
|
||||
#include <QGraphicsProxyWidget>
|
||||
#include <QPushButton>
|
||||
#include "diagramEditor/editRowData.h"
|
||||
#include "diagramEditor/editItem.h"
|
||||
#include "global.h"
|
||||
|
||||
|
||||
EditRowData::EditRowData(QGraphicsItem *parent)
|
||||
: EditBaseStruct(parent)
|
||||
{
|
||||
m_layout = new QGraphicsLinearLayout(Qt::Horizontal, this);
|
||||
|
||||
// 添加按钮
|
||||
//_btnAdd = new QPushButton("Add Item");
|
||||
//QGraphicsProxyWidget* btnProxy = new QGraphicsProxyWidget(this);
|
||||
//m_layout->addItem(btnProxy);
|
||||
//m_layout->setAlignment(btnProxy,Qt::AlignCenter);
|
||||
//btnProxy->setWidget(_btnAdd);
|
||||
m_layout->addStretch();
|
||||
m_layout->setSpacing(6);
|
||||
|
||||
//connect(_btnAdd, &QPushButton::clicked, this, &EditRowData::addItem);
|
||||
setDataType(DiagramEditorStructType::rowData);
|
||||
}
|
||||
EditRowData::~EditRowData()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
int EditRowData::addItems(int n)
|
||||
{
|
||||
if(n < 1)
|
||||
return -1;
|
||||
for(int i = 0;i < n; ++i)
|
||||
{
|
||||
EditItem* pItem = new EditItem(this);
|
||||
pItem->setMaximumSize(g_dEditorItem_Width, g_dEditorItem_Height);
|
||||
pItem->setMinimumSize(g_dEditorItem_Width, g_dEditorItem_Height);
|
||||
_lstItem.append(pItem);
|
||||
m_layout->insertItem(0,pItem);
|
||||
m_layout->setStretchFactor(pItem,0);
|
||||
}
|
||||
int nWidth = calWidth();
|
||||
setMinimumWidth(nWidth);
|
||||
return nWidth;
|
||||
}
|
||||
|
||||
void EditRowData::addItem()
|
||||
{
|
||||
EditItem* pItem = new EditItem(this);
|
||||
pItem->setMaximumSize(g_dEditorItem_Width, g_dEditorItem_Height);
|
||||
pItem->setMinimumSize(g_dEditorItem_Width, g_dEditorItem_Height);
|
||||
|
||||
int nWidth = calWidth();
|
||||
setMinimumWidth(nWidth);
|
||||
_lstItem.append(pItem);
|
||||
m_layout->insertItem(m_layout->count()-1,pItem);
|
||||
m_layout->setStretchFactor(pItem,1);
|
||||
|
||||
emit widthChanged(nWidth);
|
||||
}
|
||||
|
||||
int EditRowData::calWidth()
|
||||
{
|
||||
int width = 0;
|
||||
for(auto &pro:_lstItem)
|
||||
{
|
||||
width += pro->rect().width()+6;
|
||||
}
|
||||
//width += _btnAdd->width()+250; //100为add按钮的宽度
|
||||
return width;
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
#include "diagramEditor/editScene.h"
|
||||
|
||||
EditScene::EditScene(QObject *parent)
|
||||
: QGraphicsScene(parent)
|
||||
{
|
||||
|
||||
}
|
||||
EditScene::~EditScene()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
#include "diagramEditor/editView.h"
|
||||
|
||||
|
||||
EditView::EditView(QWidget *parent)
|
||||
: QGraphicsView(parent)
|
||||
{
|
||||
this->setFocusPolicy(Qt::ClickFocus);
|
||||
}
|
||||
EditView::~EditView()
|
||||
{
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,385 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>diagramEditorWizard</class>
|
||||
<widget class="QDialog" name="diagramEditorWizard">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>536</width>
|
||||
<height>413</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<property name="leftMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="horizontalSpacing">
|
||||
<number>4</number>
|
||||
</property>
|
||||
<property name="verticalSpacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="0" colspan="4">
|
||||
<widget class="QStackedWidget" name="stackedWidget">
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="page_bus">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>母线设置</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>220KV</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2" stretch="1,3,1,3,1,3">
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>数量</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="cb_num_220">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>无</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>单母线</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>双母线</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>分段方式</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="cb_div_220">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>1</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>2</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>3</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>4</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>回路数量</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="sp_circuit_220"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_3">
|
||||
<property name="title">
|
||||
<string>110KV</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3" stretch="1,3,1,3,1,3">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>数量</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="cb_num_110">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>无</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>单母线</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>双母线</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>分段方式</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="cb_div_110">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>1</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>2</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>3</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>4</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
<string>回路数量</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="sp_circuit_110"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_4">
|
||||
<property name="title">
|
||||
<string>35KV</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4" stretch="1,3,1,3,1,3">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_7">
|
||||
<property name="text">
|
||||
<string>数量</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="cb_num_35">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>无</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>单母线</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>双母线</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="text">
|
||||
<string>分段方式</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="cb_div_35">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>1</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>2</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>3</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>4</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_9">
|
||||
<property name="text">
|
||||
<string>回路数量</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="sp_circuit_35"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="page_circuit"/>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Orientation::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>139</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QPushButton" name="btn_last">
|
||||
<property name="text">
|
||||
<string>上一步</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QStackedWidget" name="stackedWidget_btn">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>80</width>
|
||||
<height>22</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="page_next">
|
||||
<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="QPushButton" name="btn_next">
|
||||
<property name="text">
|
||||
<string>下一步</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="page_ok">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<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="QPushButton" name="btn_ok">
|
||||
<property name="text">
|
||||
<string>完成</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<widget class="QPushButton" name="btn_cancel">
|
||||
<property name="text">
|
||||
<string>取消</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
|
@ -0,0 +1,83 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>Dialog</class>
|
||||
<widget class="QDialog" name="Dialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>311</width>
|
||||
<height>448</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>20</x>
|
||||
<y>20</y>
|
||||
<width>281</width>
|
||||
<height>141</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>基础信息</string>
|
||||
</property>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>20</x>
|
||||
<y>30</y>
|
||||
<width>31</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>名称:</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="le_name">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>50</x>
|
||||
<y>30</y>
|
||||
<width>91</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>20</x>
|
||||
<y>60</y>
|
||||
<width>31</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>类型:</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QComboBox" name="comboBox">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>50</x>
|
||||
<y>60</y>
|
||||
<width>91</width>
|
||||
<height>22</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
#ifndef CREATEEDITOR_H
|
||||
#define CREATEEDITOR_H
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
namespace Ui { class createEditor; }
|
||||
QT_END_NAMESPACE
|
||||
|
||||
class CreateEditor : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
CreateEditor(QWidget *parent = nullptr);
|
||||
~CreateEditor();
|
||||
|
||||
void initial();
|
||||
void showDlg();
|
||||
signals:
|
||||
void createEditor(QString);
|
||||
public slots:
|
||||
void onOkClicked();
|
||||
void onCancelClicked();
|
||||
private:
|
||||
Ui::createEditor *ui;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -21,6 +21,7 @@ class LoadPageDlg;
|
|||
class projectModelDlg;
|
||||
class TopologyView;
|
||||
class DiagramView;
|
||||
class CreateEditor;
|
||||
|
||||
class CMainWindow : public QMainWindow
|
||||
{
|
||||
|
|
@ -50,6 +51,7 @@ private slots:
|
|||
void onSignal_deleteItem();
|
||||
void onSignal_loadPage();
|
||||
|
||||
void onAction_createEditor();
|
||||
public:
|
||||
GraphicElementsPanel* graphicsElementsPanel() const;
|
||||
|
||||
|
|
@ -74,5 +76,6 @@ private:
|
|||
GraphicElementsPanel* m_pGraphicElementsPanel;
|
||||
LoadPageDlg* m_pLoadPageDlg;
|
||||
projectModelDlg* m_pProjectModelDlg;
|
||||
CreateEditor* m_pCreateEdiotr;
|
||||
};
|
||||
#endif // MAINWINDOW_H
|
||||
|
|
|
|||
|
|
@ -0,0 +1,40 @@
|
|||
#include <QPushButton>
|
||||
#include "createEditor.h"
|
||||
#include "ui_createEditor.h"
|
||||
|
||||
CreateEditor::CreateEditor(QWidget *parent)
|
||||
: QDialog(parent)
|
||||
, ui(new Ui::createEditor)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
this->setWindowFlags(Qt::FramelessWindowHint | windowFlags());
|
||||
initial();
|
||||
}
|
||||
|
||||
CreateEditor::~CreateEditor()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void CreateEditor::initial()
|
||||
{
|
||||
connect(ui->btn_ok,&QPushButton::clicked,this,onOkClicked);
|
||||
connect(ui->btn_cancel,&QPushButton::clicked,this,onCancelClicked);
|
||||
}
|
||||
|
||||
void CreateEditor::showDlg()
|
||||
{
|
||||
show();
|
||||
ui->le_name->clear();
|
||||
}
|
||||
|
||||
void CreateEditor::onOkClicked()
|
||||
{
|
||||
emit createEditor(ui->le_name->text());
|
||||
hide();
|
||||
}
|
||||
|
||||
void CreateEditor::onCancelClicked()
|
||||
{
|
||||
hide();
|
||||
}
|
||||
|
|
@ -26,6 +26,7 @@
|
|||
#include "projectModelDlg.h"
|
||||
#include "topologyView.h"
|
||||
#include "diagramView.h"
|
||||
#include "createEditor.h"
|
||||
|
||||
//using namespace ads;
|
||||
|
||||
|
|
@ -39,6 +40,7 @@ CMainWindow::CMainWindow(QWidget *parent)
|
|||
m_pLoadPageDlg = nullptr;
|
||||
m_pTopologyView = nullptr;
|
||||
m_pDiagramView = nullptr;
|
||||
m_pCreateEdiotr = nullptr;
|
||||
|
||||
initializeDockUi();
|
||||
initializeAction();
|
||||
|
|
@ -140,6 +142,9 @@ void CMainWindow::initializeAction()
|
|||
connect(ui->actionSave,&QAction::triggered,m_pDiagramCavas,&DiagramCavas::onSignal_savePage);
|
||||
connect(ui->actionDelete,&QAction::triggered,m_pDiagramCavas,&DiagramCavas::onSignal_deletePage);
|
||||
|
||||
QAction* actNewEditor = ui->menuFile->addAction(QString::fromWCharArray(L"新建组态"));
|
||||
connect(actNewEditor,&QAction::triggered,this,&CMainWindow::onAction_createEditor);
|
||||
|
||||
QAction* actRun = ui->menuMode->addAction(QString::fromWCharArray(L"运行"));
|
||||
connect(actRun,&QAction::triggered,m_pDiagramCavas,&DiagramCavas::onSignal_runPage);
|
||||
|
||||
|
|
@ -203,7 +208,6 @@ void CMainWindow::onAction_editProject()
|
|||
|
||||
void CMainWindow::onAction_editBay()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void CMainWindow::onSignal_addItem(QGraphicsItem* item)
|
||||
|
|
@ -236,6 +240,15 @@ void CMainWindow::onSignal_loadPage()
|
|||
m_pLoadPageDlg->show();
|
||||
}
|
||||
|
||||
void CMainWindow::onAction_createEditor()
|
||||
{
|
||||
if(m_pCreateEdiotr == nullptr){
|
||||
m_pCreateEdiotr = new CreateEditor(this);
|
||||
connect(m_pCreateEdiotr,&CreateEditor::createEditor,m_pDiagramCavas,&DiagramCavas::onSignal_createEditPanel);
|
||||
}
|
||||
m_pCreateEdiotr->showDlg();
|
||||
}
|
||||
|
||||
GraphicElementsPanel* CMainWindow::graphicsElementsPanel() const
|
||||
{
|
||||
if(m_pGraphicElementsPanel)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,142 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>createEditor</class>
|
||||
<widget class="QDialog" name="createEditor">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>215</width>
|
||||
<height>126</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="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(164, 164, 164);</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<property name="leftMargin">
|
||||
<number>8</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="QLabel" name="label">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: rgb(0, 0, 0);</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>176</width>
|
||||
<height>18</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_2" native="true">
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<property name="leftMargin">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="horizontalSpacing">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<item row="0" column="0" colspan="2">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout" stretch="1,3">
|
||||
<property name="leftMargin">
|
||||
<number>20</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>20</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>名称:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="le_name"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QPushButton" name="btn_ok">
|
||||
<property name="text">
|
||||
<string>确定</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QPushButton" name="btn_cancel">
|
||||
<property name="text">
|
||||
<string>取消</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
Loading…
Reference in New Issue