add transformer setting ui
This commit is contained in:
parent
04dd9af60e
commit
064c73af08
|
|
@ -380,14 +380,7 @@ struct gridInfo //grid
|
||||||
QMap<QString,zoneInfo> zoneMap;
|
QMap<QString,zoneInfo> zoneMap;
|
||||||
};*/
|
};*/
|
||||||
//===================组态编辑器使用================
|
//===================组态编辑器使用================
|
||||||
struct DiagramEditorWizardInfo //组态编辑向导信息
|
const int g_transformerLevel = 999; //层级结构中变压器所处层级
|
||||||
{
|
|
||||||
/*int nIndex = 0;
|
|
||||||
double dVoltage = 0;
|
|
||||||
int nLineType = 1; //1单母线,2双母线
|
|
||||||
QMap<bool,int> mapDivide; //母线划分数,false为1母线,true为2母
|
|
||||||
int connectType = 0;*/ //接线方式,1为分段连接
|
|
||||||
};
|
|
||||||
|
|
||||||
struct DiagramEditorWizardBusInfo //组态编辑母线信息
|
struct DiagramEditorWizardBusInfo //组态编辑母线信息
|
||||||
{
|
{
|
||||||
|
|
@ -400,6 +393,12 @@ struct DiagramEditorWizardBusInfo //组态编辑母线信息
|
||||||
bool bChanged = false; //是否改变
|
bool bChanged = false; //是否改变
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum class TransformerType //变压器类型
|
||||||
|
{
|
||||||
|
twoWinding = 0, //两绕组
|
||||||
|
threeWinding //三绕组
|
||||||
|
};
|
||||||
|
|
||||||
enum class BayType //间隔类型
|
enum class BayType //间隔类型
|
||||||
{
|
{
|
||||||
busSectionBay = 0, //分段
|
busSectionBay = 0, //分段
|
||||||
|
|
@ -412,6 +411,20 @@ enum class BayType //间隔类型
|
||||||
mainTransformerBay //主变
|
mainTransformerBay //主变
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum class EditorItemType //组态编辑中的图形项类型
|
||||||
|
{
|
||||||
|
bus = 0, //母线
|
||||||
|
bay, //间隔
|
||||||
|
Trans //变压器
|
||||||
|
};
|
||||||
|
|
||||||
|
struct DiagramEditorWizardTransformerInfo //组态变压器信息
|
||||||
|
{
|
||||||
|
QString sName;
|
||||||
|
TransformerType nType;
|
||||||
|
QList<QString> lstBindObj; //连接的对象
|
||||||
|
};
|
||||||
|
|
||||||
struct DiagramEditorWizardBayInfo //组态间隔信息
|
struct DiagramEditorWizardBayInfo //组态间隔信息
|
||||||
{
|
{
|
||||||
QString sName;
|
QString sName;
|
||||||
|
|
@ -421,8 +434,9 @@ struct DiagramEditorWizardBayInfo //组态间隔信息
|
||||||
|
|
||||||
enum class DiagramEditorStructType
|
enum class DiagramEditorStructType
|
||||||
{
|
{
|
||||||
bus, //母线
|
block = 0, //模块(母线段、间隔、变压器)
|
||||||
rowData //母线对应的一行数据
|
blockContainer, //模块容器(包含若干模块)
|
||||||
|
rowData //行数据(包含若干容器)
|
||||||
};
|
};
|
||||||
|
|
||||||
struct DiagramEditorConnectType //组态编辑连接信息
|
struct DiagramEditorConnectType //组态编辑连接信息
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,9 @@ set(DIAGRAMCAVAS_HEADER_FILES
|
||||||
include/diagramEditor/editRowData.h
|
include/diagramEditor/editRowData.h
|
||||||
include/diagramEditor/editMainRect.h
|
include/diagramEditor/editMainRect.h
|
||||||
include/diagramEditor/editItem.h
|
include/diagramEditor/editItem.h
|
||||||
include/diagramEditor/editBus.h
|
include/diagramEditor/editItems.h
|
||||||
|
include/diagramEditor/editContainerItem.h
|
||||||
|
include/diagramEditor/editBlock.h
|
||||||
include/diagramEditor/editBaseStruct.h
|
include/diagramEditor/editBaseStruct.h
|
||||||
include/diagramEditor/diagramEditorWizard.h
|
include/diagramEditor/diagramEditorWizard.h
|
||||||
include/diagramEditor/wizardBusTableDelegate.h
|
include/diagramEditor/wizardBusTableDelegate.h
|
||||||
|
|
@ -38,6 +40,7 @@ set(DIAGRAMCAVAS_HEADER_FILES
|
||||||
include/diagramEditor/diagramEditorBaseBlock.h
|
include/diagramEditor/diagramEditorBaseBlock.h
|
||||||
include/diagramEditor/diagramEditorStructContainer.h
|
include/diagramEditor/diagramEditorStructContainer.h
|
||||||
include/diagramEditor/diagramEditorBaySettingDlg.h
|
include/diagramEditor/diagramEditorBaySettingDlg.h
|
||||||
|
include/diagramEditor/diagramEditorTransSettingDlg.h
|
||||||
include/graphicsDataModel/baseModel.h
|
include/graphicsDataModel/baseModel.h
|
||||||
include/graphicsDataModel/fixedPortsModel.h
|
include/graphicsDataModel/fixedPortsModel.h
|
||||||
include/graphicsItem/electricConnectLineItem.h
|
include/graphicsItem/electricConnectLineItem.h
|
||||||
|
|
@ -105,7 +108,9 @@ set(DIAGRAMCAVAS_SOURCE_FILES
|
||||||
source/diagramEditor/editRowData.cpp
|
source/diagramEditor/editRowData.cpp
|
||||||
source/diagramEditor/editMainRect.cpp
|
source/diagramEditor/editMainRect.cpp
|
||||||
source/diagramEditor/editItem.cpp
|
source/diagramEditor/editItem.cpp
|
||||||
source/diagramEditor/editBus.cpp
|
source/diagramEditor/editItems.cpp
|
||||||
|
source/diagramEditor/editContainerItem.cpp
|
||||||
|
source/diagramEditor/editBlock.cpp
|
||||||
source/diagramEditor/editBaseStruct.cpp
|
source/diagramEditor/editBaseStruct.cpp
|
||||||
source/diagramEditor/diagramEditorWizard.cpp
|
source/diagramEditor/diagramEditorWizard.cpp
|
||||||
source/diagramEditor/wizardBusTableDelegate.cpp
|
source/diagramEditor/wizardBusTableDelegate.cpp
|
||||||
|
|
@ -113,6 +118,7 @@ set(DIAGRAMCAVAS_SOURCE_FILES
|
||||||
source/diagramEditor/diagramEditorBaseBlock.cpp
|
source/diagramEditor/diagramEditorBaseBlock.cpp
|
||||||
source/diagramEditor/diagramEditorStructContainer.cpp
|
source/diagramEditor/diagramEditorStructContainer.cpp
|
||||||
source/diagramEditor/diagramEditorBaySettingDlg.cpp
|
source/diagramEditor/diagramEditorBaySettingDlg.cpp
|
||||||
|
source/diagramEditor/diagramEditorTransSettingDlg.cpp
|
||||||
source/graphicsDataModel/baseModel.cpp
|
source/graphicsDataModel/baseModel.cpp
|
||||||
source/graphicsDataModel/fixedPortsModel.cpp
|
source/graphicsDataModel/fixedPortsModel.cpp
|
||||||
source/graphicsItem/electricConnectLineItem.cpp
|
source/graphicsItem/electricConnectLineItem.cpp
|
||||||
|
|
@ -163,6 +169,7 @@ set(UI_FILES
|
||||||
ui/bayManagerDlg.ui
|
ui/bayManagerDlg.ui
|
||||||
ui/bayManagerContentDlg.ui
|
ui/bayManagerContentDlg.ui
|
||||||
ui/diagramEditorBaySettingDlg.ui
|
ui/diagramEditorBaySettingDlg.ui
|
||||||
|
ui/diagramEditorTransSettingDlg.ui
|
||||||
)
|
)
|
||||||
|
|
||||||
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
|
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ public slots:
|
||||||
void onSignal_createEditPanel(QString);
|
void onSignal_createEditPanel(QString);
|
||||||
EditPanel* onSignal_addEditPanel(QString);
|
EditPanel* onSignal_addEditPanel(QString);
|
||||||
void onSignal_addEditWizard(QString);
|
void onSignal_addEditWizard(QString);
|
||||||
void onSignal_wizardFinished(DiagramEditorWizardInfo);
|
void onSignal_wizardFinished();
|
||||||
/*********************************间隔**************************************/
|
/*********************************间隔**************************************/
|
||||||
void onSignl_openCurrentBay();
|
void onSignl_openCurrentBay();
|
||||||
private:
|
private:
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ public:
|
||||||
virtual DiagramEditorStructContainer* getCurContainer() {return _curContainer;}
|
virtual DiagramEditorStructContainer* getCurContainer() {return _curContainer;}
|
||||||
protected:
|
protected:
|
||||||
QString sName;
|
QString sName;
|
||||||
int nType; //1母线,2间隔
|
int nType; //1母线,2间隔,3变压器
|
||||||
QList<DiagramEditorBriefConnect> lstCon; //连接信息
|
QList<DiagramEditorBriefConnect> lstCon; //连接信息
|
||||||
DiagramEditorStructContainer* _curContainer; //当前所处的容器
|
DiagramEditorStructContainer* _curContainer; //当前所处的容器
|
||||||
};
|
};
|
||||||
|
|
@ -65,4 +65,16 @@ protected:
|
||||||
BayType nBayType;
|
BayType nBayType;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/***************************transformer单元****************************/
|
||||||
|
class DiagramEditorTransformerBlock:public DiagramEditorBaseBlock
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
DiagramEditorTransformerBlock(QObject *parent = 0);
|
||||||
|
virtual ~DiagramEditorTransformerBlock();
|
||||||
|
virtual void setTransType(TransformerType typ) {nTransType = typ;}
|
||||||
|
virtual TransformerType getTransType() {return nTransType;}
|
||||||
|
protected:
|
||||||
|
TransformerType nTransType;
|
||||||
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
#ifndef DIAGRAMEDITORTRANSSETTINGDLG_H
|
||||||
|
#define DIAGRAMEDITORTRANSSETTINGDLG_H
|
||||||
|
|
||||||
|
#include <QDialog>
|
||||||
|
#include "global.h"
|
||||||
|
|
||||||
|
QT_BEGIN_NAMESPACE
|
||||||
|
namespace Ui { class diagramEditorTransSettingDlg; }
|
||||||
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
|
class DiagramEditorWizard;
|
||||||
|
class DiagramEditorTransformerBlock;
|
||||||
|
|
||||||
|
class DiagramEditorTransSettingDlg : public QDialog
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
DiagramEditorTransSettingDlg(QWidget *parent = nullptr);
|
||||||
|
~DiagramEditorTransSettingDlg();
|
||||||
|
|
||||||
|
void initial();
|
||||||
|
void setParent(DiagramEditorWizard* p) {_pWizard = p;}
|
||||||
|
void showDlg();
|
||||||
|
void showDlg(DiagramEditorTransformerBlock*);
|
||||||
|
void addNewTrans();
|
||||||
|
public slots:
|
||||||
|
void onAddClicked();
|
||||||
|
void onDeleteClicked();
|
||||||
|
void onOkClicked();
|
||||||
|
void onCancelClicked();
|
||||||
|
void onConnectLevelChanged(const QString&); //连接层级改变信号
|
||||||
|
void onBayTypeChanged(int n);
|
||||||
|
private:
|
||||||
|
Ui::diagramEditorTransSettingDlg *ui;
|
||||||
|
DiagramEditorWizard* _pWizard;
|
||||||
|
int _curModel; //0新增,1修改
|
||||||
|
DiagramEditorTransformerBlock* _curOperateBlock; //当前修改对象
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -13,6 +13,7 @@ class DiagramEditorBaseBlock;
|
||||||
class DiagramEditorStructContainer;
|
class DiagramEditorStructContainer;
|
||||||
class QListWidgetItem;
|
class QListWidgetItem;
|
||||||
class DiagramEditorBaySettingDlg;
|
class DiagramEditorBaySettingDlg;
|
||||||
|
class DiagramEditorTransSettingDlg;
|
||||||
|
|
||||||
class DiagramEditorWizard : public QDialog
|
class DiagramEditorWizard : public QDialog
|
||||||
{
|
{
|
||||||
|
|
@ -21,7 +22,7 @@ public:
|
||||||
DiagramEditorWizard(QWidget *parent = nullptr);
|
DiagramEditorWizard(QWidget *parent = nullptr);
|
||||||
~DiagramEditorWizard();
|
~DiagramEditorWizard();
|
||||||
signals:
|
signals:
|
||||||
void wizardFinish(DiagramEditorWizardInfo);
|
void wizardFinish();
|
||||||
public slots:
|
public slots:
|
||||||
void onOkClicked();
|
void onOkClicked();
|
||||||
void onCancelClicked();
|
void onCancelClicked();
|
||||||
|
|
@ -32,34 +33,40 @@ public slots:
|
||||||
void onAddBayClicked(); //添加间隔
|
void onAddBayClicked(); //添加间隔
|
||||||
void onAddTransClicked(); //添加变压器
|
void onAddTransClicked(); //添加变压器
|
||||||
void onAddBayFinished(DiagramEditorWizardBayInfo); //添加间隔完毕
|
void onAddBayFinished(DiagramEditorWizardBayInfo); //添加间隔完毕
|
||||||
|
void onAddTransFinished(DiagramEditorWizardTransformerInfo); //添加变压器完毕
|
||||||
|
|
||||||
void onDelegateFinishEdit(const QModelIndex &index, const QString &value); //代理edit完成事件
|
void onDelegateFinishEdit(const QModelIndex &index, const QString &value); //代理edit完成事件
|
||||||
void onBusDeleteClicked();
|
void onBusDeleteClicked();
|
||||||
void onBusIndexRbtnClicked(const QPoint &pos); //bus列表右键菜单
|
void onBusIndexRbtnClicked(const QPoint &pos); //bus列表右键菜单
|
||||||
|
|
||||||
|
void onTransDeleteClicked();
|
||||||
|
void onTransModifyClicked();
|
||||||
|
void onTransIndexRbtnClicked(const QPoint &pos); //变压器列表右键菜单
|
||||||
|
|
||||||
void onBayListSelected(QListWidgetItem* pItem); //baylist选择事件
|
void onBayListSelected(QListWidgetItem* pItem); //baylist选择事件
|
||||||
public:
|
public:
|
||||||
QMap<int,DiagramEditorWizardBusInfo> getMapBusInfo() {return _mapBus;}
|
QMap<int,DiagramEditorWizardBusInfo> getMapBusInfo() {return _mapBus;}
|
||||||
QMap<int,QMap<int,DiagramEditorStructContainer*>> getCointainerStruct(){return _mapSturctContainer;}
|
QMap<int,QMap<int,DiagramEditorStructContainer*>> getCointainerStruct(){return _mapSturctContainer;}
|
||||||
QList<DiagramEditorBaseBlock*> getTargetLevelBlocks(int nLevel,int nType); //返回指定层数的对应block,type:1母线,2间隔
|
QList<DiagramEditorBaseBlock*> getTargetLevelBlocks(int nLevel,int nType); //返回指定层数的对应block,type:1母线,2间隔,3变压器
|
||||||
DiagramEditorStructContainer* getContainerByBlock(int nLevel,int nType,QString sName); //根据block名称返回container
|
DiagramEditorStructContainer* getContainerByBlock(int nLevel,int nType,QString sName); //根据block名称返回container
|
||||||
DiagramEditorBaseBlock* getBlockByName(int nLevel,int nType,QString sName); //根据名称返回block
|
DiagramEditorBaseBlock* getBlockByName(int nLevel,int nType,QString sName); //根据名称返回block
|
||||||
bool removeBlockByName(int nLevel,int nType,const QString& sName); //依据名称删除block
|
bool removeBlockByName(int nLevel,int nType,const QString& sName); //依据名称删除block
|
||||||
WizardBayContentDlg* getContentDlg() {return _bayContentDlg;}
|
WizardBayContentDlg* getContentDlg() {return _bayContentDlg;}
|
||||||
DiagramEditorBaySettingDlg* getBaySettingDlg() {return _baySettingDlg;}
|
DiagramEditorBaySettingDlg* getBaySettingDlg() {return _baySettingDlg;}
|
||||||
|
void flushTransPage(); //刷新变压器界面
|
||||||
private:
|
private:
|
||||||
void initial();
|
void initial();
|
||||||
void reOrderBus(); //重置bus次序
|
void reOrderBus(); //重置bus次序
|
||||||
void generateBayStruct(); //根据bus设置生成bay结构
|
void generateBayStruct(); //根据bus设置生成bay结构
|
||||||
void showSelectedBayPage(int); //显示选中的bay页面
|
void addTransformer(DiagramEditorWizardTransformerInfo); //界面上添加变压器
|
||||||
template <typename T> void reindexQMap(QMap<int, T> &map); //重新排序函数
|
template <typename T> void reindexQMap(QMap<int, T> &map); //重新排序函数
|
||||||
private:
|
private:
|
||||||
Ui::diagramEditorWizard *ui;
|
Ui::diagramEditorWizard *ui;
|
||||||
BiDirectionalMap<int,QString> _divideType; //划分段数名对照
|
BiDirectionalMap<int,QString> _divideType; //划分段数名对照
|
||||||
WizardBayContentDlg* _bayContentDlg;
|
WizardBayContentDlg* _bayContentDlg;
|
||||||
DiagramEditorBaySettingDlg* _baySettingDlg;
|
DiagramEditorBaySettingDlg* _baySettingDlg;
|
||||||
|
DiagramEditorTransSettingDlg* _transSettingDlg;
|
||||||
QMap<int,DiagramEditorWizardBusInfo> _mapBus; //母线信息
|
QMap<int,DiagramEditorWizardBusInfo> _mapBus; //母线信息
|
||||||
|
|
||||||
QMap<int,QMap<int,DiagramEditorStructContainer*>> _mapSturctContainer; //划分后的区块
|
QMap<int,QMap<int,DiagramEditorStructContainer*>> _mapSturctContainer; //划分后的区块
|
||||||
bool _busPageChanged; //母线页改变
|
bool _busPageChanged; //母线页改变
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
#ifndef EDITBASESTRUCT_H
|
#ifndef EDITBASESTRUCT_H
|
||||||
#define EDITBASESTRUCT_H
|
#define EDITBASESTRUCT_H
|
||||||
|
|
||||||
//编辑器基础结构,母线,母线下的一行回路
|
//编辑器基础空间结构
|
||||||
#include <QGraphicsWidget>
|
#include <QGraphicsWidget>
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
#ifndef EDITBLOCK_H
|
||||||
|
#define EDITBLOCK_H
|
||||||
|
//编辑器模块结构(分段母线、间隔、变压器等)
|
||||||
|
#include <QGraphicsWidget>
|
||||||
|
#include "diagramEditor/editBaseStruct.h"
|
||||||
|
|
||||||
|
class EditBlock : public EditBaseStruct
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
EditBlock(QGraphicsItem *parent = nullptr);
|
||||||
|
~EditBlock();
|
||||||
|
|
||||||
|
void setupUI();
|
||||||
|
void setName(QString s) {_sName = s;}
|
||||||
|
protected:
|
||||||
|
void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) override;
|
||||||
|
private:
|
||||||
|
QString _sName;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
#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,17 @@
|
||||||
|
#ifndef EDITCONTAINERITEM_H
|
||||||
|
#define EDITCONTAINERITEM_H
|
||||||
|
//存放间隔、分段母线、变压器的实体
|
||||||
|
#include <QGraphicsWidget>
|
||||||
|
|
||||||
|
class EditContainerItem : public QGraphicsWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
EditContainerItem(QGraphicsItem *parent = nullptr);
|
||||||
|
~EditContainerItem();
|
||||||
|
void setupUI();
|
||||||
|
protected:
|
||||||
|
virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -0,0 +1,62 @@
|
||||||
|
#ifndef EDITITEMS_H
|
||||||
|
#define EDITITEMS_H
|
||||||
|
|
||||||
|
//组态过程中的item
|
||||||
|
#include <QGraphicsObject>
|
||||||
|
#include "global.h"
|
||||||
|
|
||||||
|
class EditBaseItem : public QGraphicsObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
EditBaseItem(QGraphicsItem *parent = nullptr);
|
||||||
|
virtual ~EditBaseItem();
|
||||||
|
|
||||||
|
virtual void setName(const QString& s){sName = s;}
|
||||||
|
virtual QString getName(){return sName;}
|
||||||
|
virtual void setType(EditorItemType tpe) {nType = tpe;}
|
||||||
|
virtual EditorItemType getType(){return nType;}
|
||||||
|
virtual void setBoundingRect(QRectF rec) {m_boundingRect = rec;}
|
||||||
|
virtual QRectF boundingRect() {return m_boundingRect;}
|
||||||
|
protected:
|
||||||
|
virtual QPainterPath shape();
|
||||||
|
protected:
|
||||||
|
QString sName;
|
||||||
|
EditorItemType nType;
|
||||||
|
QRectF m_boundingRect;
|
||||||
|
};
|
||||||
|
|
||||||
|
/********************bus*********************/
|
||||||
|
class EditBusItem: public EditBaseItem
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
EditBusItem(QGraphicsItem *parent = nullptr);
|
||||||
|
virtual ~EditBusItem();
|
||||||
|
protected:
|
||||||
|
virtual void paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget*) override;
|
||||||
|
};
|
||||||
|
|
||||||
|
/********************bay*********************/
|
||||||
|
class EditBayItem: public EditBaseItem
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
EditBayItem(QGraphicsItem *parent = nullptr);
|
||||||
|
virtual ~EditBayItem();
|
||||||
|
protected:
|
||||||
|
virtual void paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget*) override;
|
||||||
|
};
|
||||||
|
|
||||||
|
/********************trans*********************/
|
||||||
|
class EditTransItem: public EditBaseItem
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
EditTransItem(QGraphicsItem *parent = nullptr);
|
||||||
|
virtual ~EditTransItem();
|
||||||
|
protected:
|
||||||
|
virtual void paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget*) override;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -21,15 +21,11 @@ public:
|
||||||
EditPanel(QWidget *parent = nullptr);
|
EditPanel(QWidget *parent = nullptr);
|
||||||
~EditPanel();
|
~EditPanel();
|
||||||
|
|
||||||
void initByWizardInfo(DiagramEditorWizardInfo);
|
void initByWizardInfo();
|
||||||
protected:
|
|
||||||
void resizeEvent(QResizeEvent* e);
|
|
||||||
public slots:
|
public slots:
|
||||||
void onAddCLicked();
|
|
||||||
void onWidthChanged(int width);
|
void onWidthChanged(int width);
|
||||||
private:
|
private:
|
||||||
void initial();
|
void initial();
|
||||||
int calHeight();
|
|
||||||
private:
|
private:
|
||||||
EditView* m_pEditView;
|
EditView* m_pEditView;
|
||||||
EditScene* m_pEditScene;
|
EditScene* m_pEditScene;
|
||||||
|
|
@ -40,7 +36,6 @@ private:
|
||||||
QGraphicsProxyWidget* m_addBtnPro;
|
QGraphicsProxyWidget* m_addBtnPro;
|
||||||
int _maxWidth;
|
int _maxWidth;
|
||||||
int _maxHeight;
|
int _maxHeight;
|
||||||
int _curRow;
|
|
||||||
QList<EditRowData*> _lstData;
|
QList<EditRowData*> _lstData;
|
||||||
QMap<int,QMap<int,EditBaseStruct*>> _mapStruct;
|
QMap<int,QMap<int,EditBaseStruct*>> _mapStruct;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -6,26 +6,15 @@
|
||||||
#include "diagramEditor/editBaseStruct.h"
|
#include "diagramEditor/editBaseStruct.h"
|
||||||
|
|
||||||
class QPushButton;
|
class QPushButton;
|
||||||
class QGraphicsProxyWidget;
|
|
||||||
class EditItem;
|
|
||||||
|
|
||||||
class EditRowData : public EditBaseStruct
|
class EditRowData : public EditBaseStruct
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
EditRowData(QGraphicsItem *parent = nullptr);
|
EditRowData(QGraphicsItem *parent = nullptr);
|
||||||
~EditRowData();
|
~EditRowData();
|
||||||
|
|
||||||
int addItems(int);
|
|
||||||
signals:
|
|
||||||
void widthChanged(int width);
|
|
||||||
public slots:
|
|
||||||
void addItem();
|
|
||||||
private:
|
private:
|
||||||
int calWidth();
|
int calWidth();
|
||||||
QGraphicsLinearLayout* m_layout;
|
QGraphicsLinearLayout* m_layout;
|
||||||
QPushButton* _btnAdd;
|
|
||||||
QList<EditItem*> _lstItem;;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -375,15 +375,15 @@ void DiagramCavas::onSignal_addEditWizard(QString name)
|
||||||
{
|
{
|
||||||
if(_pEditorWizard == nullptr){
|
if(_pEditorWizard == nullptr){
|
||||||
_pEditorWizard = new DiagramEditorWizard(this);
|
_pEditorWizard = new DiagramEditorWizard(this);
|
||||||
connect(_pEditorWizard,&DiagramEditorWizard::wizardFinish,this,[&,name](DiagramEditorWizardInfo info){
|
connect(_pEditorWizard,&DiagramEditorWizard::wizardFinish,this,[&,name](){
|
||||||
EditPanel* pPanel = onSignal_addEditPanel(name);
|
EditPanel* pPanel = onSignal_addEditPanel(name);
|
||||||
pPanel->initByWizardInfo(info);
|
pPanel->initByWizardInfo();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_pEditorWizard->show();
|
_pEditorWizard->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiagramCavas::onSignal_wizardFinished(DiagramEditorWizardInfo info)
|
void DiagramCavas::onSignal_wizardFinished()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -86,3 +86,14 @@ DiagramEditorBayBlock::~DiagramEditorBayBlock()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
/***************************transformer单元****************************/
|
||||||
|
DiagramEditorTransformerBlock::DiagramEditorTransformerBlock(QObject *parent)
|
||||||
|
:DiagramEditorBaseBlock(parent)
|
||||||
|
{
|
||||||
|
nTransType = TransformerType::twoWinding;
|
||||||
|
}
|
||||||
|
|
||||||
|
DiagramEditorTransformerBlock::~DiagramEditorTransformerBlock()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ DiagramEditorBaySettingDlg::DiagramEditorBaySettingDlg(QWidget *parent)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
this->setWindowFlags(Qt::FramelessWindowHint | windowFlags());
|
this->setWindowFlags(Qt::FramelessWindowHint | windowFlags());
|
||||||
|
this->setWindowModality(Qt::WindowModal);
|
||||||
initial();
|
initial();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -67,6 +68,8 @@ void DiagramEditorBaySettingDlg::addNewBay()
|
||||||
if(_pWizard){
|
if(_pWizard){
|
||||||
auto mapAllCon = _pWizard->getCointainerStruct();
|
auto mapAllCon = _pWizard->getCointainerStruct();
|
||||||
for(auto iter = mapAllCon.begin();iter != mapAllCon.end();++iter){
|
for(auto iter = mapAllCon.begin();iter != mapAllCon.end();++iter){
|
||||||
|
if(iter.key() == g_transformerLevel)
|
||||||
|
continue;
|
||||||
ui->cb_level->addItem("第"+QString::number(iter.key()+1)+"层",iter.key());
|
ui->cb_level->addItem("第"+QString::number(iter.key()+1)+"层",iter.key());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,190 @@
|
||||||
|
#include <QMessageBox>
|
||||||
|
#include "diagramEditor/diagramEditorTransSettingDlg.h"
|
||||||
|
#include "diagramEditor/diagramEditorWizard.h"
|
||||||
|
#include "diagramEditor/diagramEditorBaseBlock.h"
|
||||||
|
#include "ui_diagramEditorTransSettingDlg.h"
|
||||||
|
#include "diagramEditor/diagramEditorStructContainer.h"
|
||||||
|
#include "diagramEditor/wizardBayContentDlg.h"
|
||||||
|
|
||||||
|
DiagramEditorTransSettingDlg::DiagramEditorTransSettingDlg(QWidget *parent)
|
||||||
|
: QDialog(parent)
|
||||||
|
, ui(new Ui::diagramEditorTransSettingDlg)
|
||||||
|
,_curOperateBlock(nullptr)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
this->setWindowFlags(Qt::FramelessWindowHint | windowFlags());
|
||||||
|
this->setWindowModality(Qt::WindowModal);
|
||||||
|
initial();
|
||||||
|
}
|
||||||
|
|
||||||
|
DiagramEditorTransSettingDlg::~DiagramEditorTransSettingDlg()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
|
||||||
|
void DiagramEditorTransSettingDlg::showDlg()
|
||||||
|
{
|
||||||
|
_curModel = 0;
|
||||||
|
show();
|
||||||
|
addNewTrans();
|
||||||
|
if(_pWizard){
|
||||||
|
ui->le_name->setText("#主变");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DiagramEditorTransSettingDlg::showDlg(DiagramEditorTransformerBlock* p)
|
||||||
|
{
|
||||||
|
_curModel = 1;
|
||||||
|
if(_curOperateBlock == nullptr)
|
||||||
|
_curOperateBlock = p;
|
||||||
|
show();
|
||||||
|
addNewTrans();
|
||||||
|
if(_pWizard){
|
||||||
|
ui->le_name->setText(p->getName());
|
||||||
|
//ui->cb_level->setCurrentIndex(0);
|
||||||
|
if(p){
|
||||||
|
auto lstCon = p->getConnect();
|
||||||
|
QStringList lst;
|
||||||
|
for(auto& con:lstCon){
|
||||||
|
QString sOppo = con.getOppositeName(p->getName());
|
||||||
|
lst.append(sOppo);
|
||||||
|
}
|
||||||
|
ui->listWidget->addItems(lst);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DiagramEditorTransSettingDlg::addNewTrans()
|
||||||
|
{
|
||||||
|
ui->cb_type->setCurrentIndex(0);
|
||||||
|
ui->cb_level->clear();
|
||||||
|
ui->cb_target->clear();
|
||||||
|
ui->listWidget->clear();
|
||||||
|
if(_pWizard){
|
||||||
|
auto mapAllCon = _pWizard->getCointainerStruct();
|
||||||
|
for(auto iter = mapAllCon.begin();iter != mapAllCon.end();++iter){
|
||||||
|
if(iter.key() == g_transformerLevel)
|
||||||
|
continue;
|
||||||
|
ui->cb_level->addItem("第"+QString::number(iter.key()+1)+"层",iter.key());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DiagramEditorTransSettingDlg::initial()
|
||||||
|
{
|
||||||
|
_curModel = 0;
|
||||||
|
connect(ui->btn_add,&QPushButton::clicked,this,&DiagramEditorTransSettingDlg::onAddClicked);
|
||||||
|
connect(ui->btn_delete,&QPushButton::clicked,this,&DiagramEditorTransSettingDlg::onDeleteClicked);
|
||||||
|
connect(ui->btn_ok,&QPushButton::clicked,this,&DiagramEditorTransSettingDlg::onOkClicked);
|
||||||
|
connect(ui->btn_cancel,&QPushButton::clicked,this,&DiagramEditorTransSettingDlg::onCancelClicked);
|
||||||
|
connect(ui->cb_level,&QComboBox::currentTextChanged,this,&DiagramEditorTransSettingDlg::onConnectLevelChanged);
|
||||||
|
connect(ui->cb_bayType,&QComboBox::currentIndexChanged,this,&DiagramEditorTransSettingDlg::onBayTypeChanged);
|
||||||
|
ui->cb_bayType->setItemData(0,3); //将类型与item关联
|
||||||
|
ui->cb_bayType->setItemData(1,4);
|
||||||
|
}
|
||||||
|
|
||||||
|
void DiagramEditorTransSettingDlg::onAddClicked()
|
||||||
|
{
|
||||||
|
QString str = ui->cb_target->currentText();
|
||||||
|
auto lst = ui->listWidget->findItems(str,Qt::MatchExactly);
|
||||||
|
if(lst.size() == 0){ //为空才添加
|
||||||
|
ui->listWidget->addItem(str);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DiagramEditorTransSettingDlg::onDeleteClicked()
|
||||||
|
{
|
||||||
|
int n = ui->listWidget->currentRow();
|
||||||
|
if(n){
|
||||||
|
auto pItem = ui->listWidget->takeItem(n);
|
||||||
|
delete pItem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DiagramEditorTransSettingDlg::onOkClicked()
|
||||||
|
{
|
||||||
|
QString sName = ui->le_name->text();
|
||||||
|
TransformerType nType = TransformerType(ui->cb_type->currentIndex());
|
||||||
|
if(_curModel == 0){
|
||||||
|
auto lstBlock = _pWizard->getTargetLevelBlocks(g_transformerLevel,3);
|
||||||
|
for(auto bay:lstBlock)
|
||||||
|
{
|
||||||
|
if(bay->getName() == sName){ //判断间隔存在
|
||||||
|
QMessageBox::information(NULL, QString("提示"), QString::fromWCharArray(L"变压器已存在"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList lst;
|
||||||
|
for(int i = 0;i < ui->listWidget->count();++i){
|
||||||
|
lst.append(ui->listWidget->item(i)->text());
|
||||||
|
}
|
||||||
|
|
||||||
|
DiagramEditorWizardTransformerInfo info;
|
||||||
|
info.sName = sName;
|
||||||
|
info.nType = nType;
|
||||||
|
info.lstBindObj = lst;
|
||||||
|
|
||||||
|
_pWizard->onAddTransFinished(info);
|
||||||
|
}
|
||||||
|
else if(_curModel == 1){
|
||||||
|
if(_curOperateBlock){
|
||||||
|
_curOperateBlock->setName(sName);
|
||||||
|
_curOperateBlock->setTransType(nType);
|
||||||
|
_curOperateBlock->clearConnect();
|
||||||
|
|
||||||
|
for(int i = 0;i < ui->listWidget->count();++i){
|
||||||
|
_curOperateBlock->addConnect(ui->listWidget->item(i)->text(),1,true);
|
||||||
|
}
|
||||||
|
|
||||||
|
_pWizard->flushTransPage();
|
||||||
|
_curOperateBlock = nullptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
void DiagramEditorTransSettingDlg::onCancelClicked()
|
||||||
|
{
|
||||||
|
hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
void DiagramEditorTransSettingDlg::onConnectLevelChanged(const QString& str)
|
||||||
|
{
|
||||||
|
if(_pWizard){
|
||||||
|
int n = ui->cb_level->findText(str);
|
||||||
|
BayType nType = BayType(ui->cb_bayType->currentData().toInt());
|
||||||
|
if(n != -1){
|
||||||
|
ui->cb_target->clear();
|
||||||
|
int nIndex = ui->cb_level->itemData(n).toInt();
|
||||||
|
auto lstBlock = _pWizard->getTargetLevelBlocks(nIndex,2);
|
||||||
|
for(auto& block:lstBlock){
|
||||||
|
auto pBay = dynamic_cast<DiagramEditorBayBlock*>(block);
|
||||||
|
if(pBay){
|
||||||
|
BayType tpe = pBay->getBayType();
|
||||||
|
if(nType == tpe)
|
||||||
|
ui->cb_target->addItem(pBay->getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DiagramEditorTransSettingDlg::onBayTypeChanged(int idx)
|
||||||
|
{
|
||||||
|
BayType nType = BayType(ui->cb_bayType->currentData().toInt());
|
||||||
|
int n = ui->cb_level->currentIndex();
|
||||||
|
if(n != -1){
|
||||||
|
ui->cb_target->clear();
|
||||||
|
int nIndex = ui->cb_level->itemData(n).toInt();
|
||||||
|
auto lstBlock = _pWizard->getTargetLevelBlocks(nIndex,2);
|
||||||
|
for(auto& block:lstBlock){
|
||||||
|
auto pBay = dynamic_cast<DiagramEditorBayBlock*>(block);
|
||||||
|
if(pBay){
|
||||||
|
BayType tpe = pBay->getBayType();
|
||||||
|
if(nType == tpe)
|
||||||
|
ui->cb_target->addItem(pBay->getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -7,11 +7,13 @@
|
||||||
#include "diagramEditor/diagramEditorBaseBlock.h"
|
#include "diagramEditor/diagramEditorBaseBlock.h"
|
||||||
#include "diagramEditor/diagramEditorStructContainer.h"
|
#include "diagramEditor/diagramEditorStructContainer.h"
|
||||||
#include "diagramEditor/diagramEditorBaySettingDlg.h"
|
#include "diagramEditor/diagramEditorBaySettingDlg.h"
|
||||||
|
#include "diagramEditor/diagramEditorTransSettingDlg.h"
|
||||||
|
|
||||||
DiagramEditorWizard::DiagramEditorWizard(QWidget *parent)
|
DiagramEditorWizard::DiagramEditorWizard(QWidget *parent)
|
||||||
: QDialog(parent)
|
: QDialog(parent)
|
||||||
, ui(new Ui::diagramEditorWizard)
|
, ui(new Ui::diagramEditorWizard)
|
||||||
,_baySettingDlg(nullptr)
|
,_baySettingDlg(nullptr)
|
||||||
|
,_transSettingDlg(nullptr)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
_busPageChanged = false;
|
_busPageChanged = false;
|
||||||
|
|
@ -47,11 +49,21 @@ void DiagramEditorWizard::initial()
|
||||||
ui->tableWidget_bus->setHorizontalHeaderLabels(headerText);
|
ui->tableWidget_bus->setHorizontalHeaderLabels(headerText);
|
||||||
ui->tableWidget_bus->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
|
ui->tableWidget_bus->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
|
||||||
|
|
||||||
|
headerText.clear();
|
||||||
|
headerText<<"变压器名称"<<"变压器类型"<<"连接对象";
|
||||||
|
ui->tableWidget_trans->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||||
|
ui->tableWidget_trans->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||||
|
ui->tableWidget_trans->setSelectionBehavior(QAbstractItemView::SelectRows);
|
||||||
|
ui->tableWidget_trans->setColumnCount(headerText.count());
|
||||||
|
ui->tableWidget_trans->setHorizontalHeaderLabels(headerText);
|
||||||
|
ui->tableWidget_trans->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
|
||||||
|
|
||||||
WizardBusTableDelegate* delegate = new WizardBusTableDelegate(this);
|
WizardBusTableDelegate* delegate = new WizardBusTableDelegate(this);
|
||||||
ui->tableWidget_bus->setItemDelegate(delegate);
|
ui->tableWidget_bus->setItemDelegate(delegate);
|
||||||
|
|
||||||
connect(delegate,&WizardBusTableDelegate::editingFinished,this,&DiagramEditorWizard::onDelegateFinishEdit);
|
connect(delegate,&WizardBusTableDelegate::editingFinished,this,&DiagramEditorWizard::onDelegateFinishEdit);
|
||||||
connect(ui->tableWidget_bus, &QTableWidget::customContextMenuRequested, this, &DiagramEditorWizard::onBusIndexRbtnClicked);
|
connect(ui->tableWidget_bus, &QTableWidget::customContextMenuRequested, this, &DiagramEditorWizard::onBusIndexRbtnClicked);
|
||||||
|
connect(ui->tableWidget_trans, &QTableWidget::customContextMenuRequested, this, &DiagramEditorWizard::onTransIndexRbtnClicked);
|
||||||
|
|
||||||
connect(ui->listWidget_bay,&QListWidget::itemClicked,this,&DiagramEditorWizard::onBayListSelected);
|
connect(ui->listWidget_bay,&QListWidget::itemClicked,this,&DiagramEditorWizard::onBayListSelected);
|
||||||
|
|
||||||
|
|
@ -193,9 +205,55 @@ void DiagramEditorWizard::generateBayStruct()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiagramEditorWizard::showSelectedBayPage(int nIdx)
|
void DiagramEditorWizard::flushTransPage()
|
||||||
{
|
{
|
||||||
|
ui->tableWidget_trans->clearContents();
|
||||||
|
ui->tableWidget_trans->setRowCount(0);
|
||||||
|
QList<DiagramEditorBaseBlock*> lst = getTargetLevelBlocks(g_transformerLevel,3);
|
||||||
|
for(auto& block:lst){
|
||||||
|
auto pItem = dynamic_cast<DiagramEditorTransformerBlock*>(block);
|
||||||
|
if(pItem){
|
||||||
|
DiagramEditorWizardTransformerInfo info;
|
||||||
|
info.sName = pItem->getName();
|
||||||
|
info.nType = pItem->getTransType();
|
||||||
|
auto lstCon = pItem->getConnect(); //获取间隔所连对象的名称
|
||||||
|
for(auto& con:lstCon){
|
||||||
|
QString sOpposite = con.getOppositeName(pItem->getName());
|
||||||
|
info.lstBindObj.append(sOpposite);
|
||||||
|
}
|
||||||
|
|
||||||
|
addTransformer(info);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DiagramEditorWizard::addTransformer(DiagramEditorWizardTransformerInfo info)
|
||||||
|
{
|
||||||
|
int row = ui->tableWidget_trans->rowCount();
|
||||||
|
ui->tableWidget_trans->insertRow(row);
|
||||||
|
|
||||||
|
//名称
|
||||||
|
QTableWidgetItem* nameItem = new QTableWidgetItem(info.sName);
|
||||||
|
ui->tableWidget_trans->setItem(row, 0, nameItem);
|
||||||
|
|
||||||
|
QString sType;
|
||||||
|
switch (info.nType) {
|
||||||
|
case TransformerType::twoWinding:
|
||||||
|
sType = "两绕组变压器";
|
||||||
|
break;
|
||||||
|
case TransformerType::threeWinding:
|
||||||
|
sType = "三绕组变压器";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
//类型
|
||||||
|
QTableWidgetItem* typeItem = new QTableWidgetItem(sType);
|
||||||
|
ui->tableWidget_trans->setItem(row, 1, typeItem);
|
||||||
|
|
||||||
|
//连接
|
||||||
|
QTableWidgetItem* connectItem = new QTableWidgetItem(info.lstBindObj.join("、"));
|
||||||
|
ui->tableWidget_trans->setItem(row, 2, connectItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T> void DiagramEditorWizard::reindexQMap(QMap<int, T> &map) {
|
template <typename T> void DiagramEditorWizard::reindexQMap(QMap<int, T> &map) {
|
||||||
|
|
@ -218,9 +276,7 @@ template <typename T> void DiagramEditorWizard::reindexQMap(QMap<int, T> &map) {
|
||||||
|
|
||||||
void DiagramEditorWizard::onOkClicked()
|
void DiagramEditorWizard::onOkClicked()
|
||||||
{
|
{
|
||||||
DiagramEditorWizardInfo info;
|
emit wizardFinish();
|
||||||
|
|
||||||
emit wizardFinish(info);
|
|
||||||
hide();
|
hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -275,7 +331,7 @@ void DiagramEditorWizard::onAddBusClicked()
|
||||||
ui->tableWidget_bus->insertRow(row);
|
ui->tableWidget_bus->insertRow(row);
|
||||||
|
|
||||||
// 层级
|
// 层级
|
||||||
QTableWidgetItem* levelItem = new QTableWidgetItem("第"+QString::number(row)+"层");
|
QTableWidgetItem* levelItem = new QTableWidgetItem("第"+QString::number(row+1)+"层");
|
||||||
ui->tableWidget_bus->setItem(row, 0, levelItem);
|
ui->tableWidget_bus->setItem(row, 0, levelItem);
|
||||||
levelItem->setData(Qt::UserRole,row);
|
levelItem->setData(Qt::UserRole,row);
|
||||||
|
|
||||||
|
|
@ -312,7 +368,11 @@ void DiagramEditorWizard::onAddBayClicked()
|
||||||
|
|
||||||
void DiagramEditorWizard::onAddTransClicked()
|
void DiagramEditorWizard::onAddTransClicked()
|
||||||
{
|
{
|
||||||
|
if(_transSettingDlg == nullptr){
|
||||||
|
_transSettingDlg = new DiagramEditorTransSettingDlg(this);
|
||||||
|
_transSettingDlg->setParent(this);
|
||||||
|
}
|
||||||
|
_transSettingDlg->showDlg();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiagramEditorWizard::onAddBayFinished(DiagramEditorWizardBayInfo info)
|
void DiagramEditorWizard::onAddBayFinished(DiagramEditorWizardBayInfo info)
|
||||||
|
|
@ -337,6 +397,27 @@ void DiagramEditorWizard::onAddBayFinished(DiagramEditorWizardBayInfo info)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DiagramEditorWizard::onAddTransFinished(DiagramEditorWizardTransformerInfo info)
|
||||||
|
{
|
||||||
|
auto pContainer = new DiagramEditorStructContainer(this);
|
||||||
|
auto pTrans = new DiagramEditorTransformerBlock(this);
|
||||||
|
|
||||||
|
pTrans->setName(info.sName);
|
||||||
|
pTrans->setType(3);
|
||||||
|
pTrans->setTransType(info.nType);
|
||||||
|
|
||||||
|
for(auto& sName:info.lstBindObj){
|
||||||
|
pTrans->addConnect(sName,2);
|
||||||
|
}
|
||||||
|
|
||||||
|
pContainer->insertBlock(1,pTrans);
|
||||||
|
|
||||||
|
int nIndex =_mapSturctContainer.value(g_transformerLevel).size();
|
||||||
|
_mapSturctContainer[g_transformerLevel].insert(nIndex,pContainer);
|
||||||
|
|
||||||
|
flushTransPage();
|
||||||
|
}
|
||||||
|
|
||||||
void DiagramEditorWizard::onDelegateFinishEdit(const QModelIndex &index, const QString &value)
|
void DiagramEditorWizard::onDelegateFinishEdit(const QModelIndex &index, const QString &value)
|
||||||
{
|
{
|
||||||
int row = index.row();
|
int row = index.row();
|
||||||
|
|
@ -436,6 +517,96 @@ void DiagramEditorWizard::onBusIndexRbtnClicked(const QPoint &pos)
|
||||||
menu.exec(ui->tableWidget_bus->mapToGlobal(pos));
|
menu.exec(ui->tableWidget_bus->mapToGlobal(pos));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DiagramEditorWizard::onTransDeleteClicked()
|
||||||
|
{
|
||||||
|
// 获取当前选中的索引
|
||||||
|
QModelIndexList selectedIndexes = ui->tableWidget_trans->selectionModel()->selectedRows();
|
||||||
|
if (selectedIndexes.isEmpty()) {
|
||||||
|
return; // 没有选中任何行
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取当前选中的第一项索引
|
||||||
|
QModelIndex index = selectedIndexes.first();
|
||||||
|
if (!index.isValid()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
QModelIndex indexName = index.sibling(index.row(),0);
|
||||||
|
QString sName = indexName.data().toString();
|
||||||
|
|
||||||
|
DiagramEditorStructContainer* pCon = getContainerByBlock(g_transformerLevel,3,sName);
|
||||||
|
bool res = removeBlockByName(g_transformerLevel,3,sName);
|
||||||
|
if(pCon){ //同时删除container(一个container包含一个变压器)
|
||||||
|
for(auto iter = _mapSturctContainer[g_transformerLevel].begin(); iter != _mapSturctContainer[g_transformerLevel].end();++iter){
|
||||||
|
if(iter.value() == pCon){
|
||||||
|
delete pCon;
|
||||||
|
_mapSturctContainer[g_transformerLevel].erase(iter);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(res){
|
||||||
|
flushTransPage();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int currentRow = ui->tableWidget_trans->currentRow();
|
||||||
|
if (currentRow == -1) {
|
||||||
|
return; // 没有选中行
|
||||||
|
}
|
||||||
|
|
||||||
|
ui->tableWidget_trans->removeRow(currentRow);
|
||||||
|
}
|
||||||
|
|
||||||
|
void DiagramEditorWizard::onTransModifyClicked()
|
||||||
|
{
|
||||||
|
// 获取当前选中的索引
|
||||||
|
QModelIndexList selectedIndexes = ui->tableWidget_trans->selectionModel()->selectedRows();
|
||||||
|
if (selectedIndexes.isEmpty()) {
|
||||||
|
return; // 没有选中任何行
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取当前选中的第一项索引
|
||||||
|
QModelIndex index = selectedIndexes.first();
|
||||||
|
if (!index.isValid()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
QModelIndex indexName = index.sibling(index.row(),0);
|
||||||
|
QString sName = indexName.data().toString();
|
||||||
|
|
||||||
|
DiagramEditorBaseBlock* pBlock = getBlockByName(g_transformerLevel,3,sName);
|
||||||
|
if(pBlock){
|
||||||
|
auto pTran = dynamic_cast<DiagramEditorTransformerBlock*>(pBlock);
|
||||||
|
if(pTran)
|
||||||
|
_transSettingDlg->showDlg(pTran);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DiagramEditorWizard::onTransIndexRbtnClicked(const QPoint &pos)
|
||||||
|
{
|
||||||
|
// 获取当前点击的位置对应的索引
|
||||||
|
QModelIndex index = ui->tableWidget_bus->indexAt(pos);
|
||||||
|
if (!index.isValid()) {
|
||||||
|
return; // 如果点击的是空白区域,直接返回
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenu menu;
|
||||||
|
QAction *deleteAction = new QAction("移除变压器", this);
|
||||||
|
QAction *modifyAction = new QAction("修改变压器", this);
|
||||||
|
menu.addAction(deleteAction);
|
||||||
|
menu.addAction(modifyAction);
|
||||||
|
|
||||||
|
// 连接删除菜单项的触发信号与槽函数
|
||||||
|
connect(deleteAction, &QAction::triggered, this, &DiagramEditorWizard::onTransDeleteClicked);
|
||||||
|
connect(modifyAction, &QAction::triggered, this, &DiagramEditorWizard::onTransModifyClicked);
|
||||||
|
|
||||||
|
// 在点击位置显示菜单
|
||||||
|
menu.exec(ui->tableWidget_bus->mapToGlobal(pos));
|
||||||
|
}
|
||||||
|
|
||||||
void DiagramEditorWizard::onBayListSelected(QListWidgetItem* pItem)
|
void DiagramEditorWizard::onBayListSelected(QListWidgetItem* pItem)
|
||||||
{
|
{
|
||||||
int nIndex = pItem->data(Qt::UserRole).toInt();
|
int nIndex = pItem->data(Qt::UserRole).toInt();
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
#include <QPainter>
|
||||||
|
#include "diagramEditor/editBlock.h"
|
||||||
|
|
||||||
|
EditBlock::EditBlock(QGraphicsItem *parent)
|
||||||
|
: EditBaseStruct(parent)
|
||||||
|
{
|
||||||
|
setupUI();
|
||||||
|
}
|
||||||
|
EditBlock::~EditBlock()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void EditBlock::setupUI()
|
||||||
|
{
|
||||||
|
setDataType(DiagramEditorStructType::block);
|
||||||
|
}
|
||||||
|
|
||||||
|
void EditBlock::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
|
||||||
|
{
|
||||||
|
QRectF rec = boundingRect();
|
||||||
|
painter->drawRect(rec);
|
||||||
|
}
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
#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,25 @@
|
||||||
|
#include <QGraphicsGridLayout>
|
||||||
|
#include <QPainter>
|
||||||
|
#include <QSizePolicy>
|
||||||
|
#include <QGraphicsSceneMouseEvent>
|
||||||
|
#include "diagramEditor/editContainerItem.h"
|
||||||
|
|
||||||
|
EditContainerItem::EditContainerItem(QGraphicsItem *parent)
|
||||||
|
: QGraphicsWidget(parent)
|
||||||
|
{
|
||||||
|
setupUI();
|
||||||
|
}
|
||||||
|
EditContainerItem::~EditContainerItem()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void EditContainerItem::setupUI()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void EditContainerItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
|
||||||
|
{
|
||||||
|
event->ignore();
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,70 @@
|
||||||
|
#include <QPainter>
|
||||||
|
#include "diagramEditor/editItems.h"
|
||||||
|
|
||||||
|
EditBaseItem::EditBaseItem(QGraphicsItem *parent)
|
||||||
|
: QGraphicsObject(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
EditBaseItem::~EditBaseItem()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QPainterPath EditBaseItem::shape()
|
||||||
|
{
|
||||||
|
QPainterPath path;
|
||||||
|
path.addRect(m_boundingRect);
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
|
/********************bus*********************/
|
||||||
|
EditBusItem::EditBusItem(QGraphicsItem *parent)
|
||||||
|
: EditBaseItem(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
EditBusItem::~EditBusItem()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void EditBusItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
|
||||||
|
{
|
||||||
|
painter->fillRect(m_boundingRect,Qt::black);
|
||||||
|
}
|
||||||
|
|
||||||
|
/********************Bay*********************/
|
||||||
|
|
||||||
|
EditBayItem::EditBayItem(QGraphicsItem *parent)
|
||||||
|
: EditBaseItem(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
EditBayItem::~EditBayItem()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void EditBayItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
|
||||||
|
{
|
||||||
|
painter->setPen(QColor(100,149,237));
|
||||||
|
painter->drawRect(m_boundingRect);
|
||||||
|
}
|
||||||
|
|
||||||
|
/********************trans*********************/
|
||||||
|
|
||||||
|
EditTransItem::EditTransItem(QGraphicsItem *parent)
|
||||||
|
: EditBaseItem(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
EditTransItem::~EditTransItem()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void EditTransItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
#include "diagramEditor/editView.h"
|
#include "diagramEditor/editView.h"
|
||||||
#include "diagramEditor/editRowData.h"
|
#include "diagramEditor/editRowData.h"
|
||||||
#include "diagramEditor/editMainRect.h"
|
#include "diagramEditor/editMainRect.h"
|
||||||
#include "diagramEditor/editBus.h"
|
#include "diagramEditor/editBlock.h"
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
|
|
@ -17,7 +17,6 @@ EditPanel::EditPanel(QWidget *parent)
|
||||||
{
|
{
|
||||||
_maxWidth = 0;
|
_maxWidth = 0;
|
||||||
_maxHeight = 0;
|
_maxHeight = 0;
|
||||||
_curRow = 0;
|
|
||||||
_layout = new QVBoxLayout(this);
|
_layout = new QVBoxLayout(this);
|
||||||
m_pEditScene = new EditScene(this);
|
m_pEditScene = new EditScene(this);
|
||||||
//设置场景大小.前两个参数为scene的坐标远点,设置到view的中心点后,无论view如何缩放,secne的坐标原点都不会动,方便后续的位置计算
|
//设置场景大小.前两个参数为scene的坐标远点,设置到view的中心点后,无论view如何缩放,secne的坐标原点都不会动,方便后续的位置计算
|
||||||
|
|
@ -36,91 +35,9 @@ EditPanel::~EditPanel()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditPanel::initByWizardInfo(DiagramEditorWizardInfo info)
|
void EditPanel::initByWizardInfo()
|
||||||
{
|
{
|
||||||
/*if(info.bus_220_num != 0)
|
_widgetLayout->addStretch();
|
||||||
{
|
|
||||||
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)
|
void EditPanel::onWidthChanged(int width)
|
||||||
|
|
@ -131,7 +48,6 @@ void EditPanel::onWidthChanged(int width)
|
||||||
int x = _mainWidget->geometry().width();
|
int x = _mainWidget->geometry().width();
|
||||||
int y = _mainWidget->geometry().y();
|
int y = _mainWidget->geometry().y();
|
||||||
_mainWidget->setGeometry(x,y,_maxWidth,_maxHeight);
|
_mainWidget->setGeometry(x,y,_maxWidth,_maxHeight);
|
||||||
//m_pEditScene->setSceneRect(m_pEditScene->itemsBoundingRect());
|
|
||||||
m_pEditScene->setSceneRect(x,y,_maxWidth,_maxHeight);
|
m_pEditScene->setSceneRect(x,y,_maxWidth,_maxHeight);
|
||||||
m_pEditView->viewport()->update();
|
m_pEditView->viewport()->update();
|
||||||
//qDebug()<<m_pEditScene->sceneRect();
|
//qDebug()<<m_pEditScene->sceneRect();
|
||||||
|
|
@ -149,27 +65,4 @@ void EditPanel::initial()
|
||||||
_maxWidth = _mainWidget->rect().width();
|
_maxWidth = _mainWidget->rect().width();
|
||||||
_maxHeight = _mainWidget->rect().height();
|
_maxHeight = _mainWidget->rect().height();
|
||||||
m_pEditView->centerOn(0,0);
|
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;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
#include <QGraphicsProxyWidget>
|
#include <QGraphicsProxyWidget>
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
#include "diagramEditor/editRowData.h"
|
#include "diagramEditor/editRowData.h"
|
||||||
#include "diagramEditor/editItem.h"
|
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -11,16 +10,10 @@ EditRowData::EditRowData(QGraphicsItem *parent)
|
||||||
{
|
{
|
||||||
m_layout = new QGraphicsLinearLayout(Qt::Horizontal, this);
|
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->addStretch();
|
||||||
m_layout->setSpacing(6);
|
m_layout->setSpacing(6);
|
||||||
|
|
||||||
//connect(_btnAdd, &QPushButton::clicked, this, &EditRowData::addItem);
|
|
||||||
setDataType(DiagramEditorStructType::rowData);
|
setDataType(DiagramEditorStructType::rowData);
|
||||||
}
|
}
|
||||||
EditRowData::~EditRowData()
|
EditRowData::~EditRowData()
|
||||||
|
|
@ -28,46 +21,9 @@ 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 EditRowData::calWidth()
|
||||||
{
|
{
|
||||||
int width = 0;
|
int width = 0;
|
||||||
for(auto &pro:_lstItem)
|
|
||||||
{
|
|
||||||
width += pro->rect().width()+6;
|
|
||||||
}
|
|
||||||
//width += _btnAdd->width()+250; //100为add按钮的宽度
|
|
||||||
return width;
|
return width;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,281 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>diagramEditorTransSettingDlg</class>
|
||||||
|
<widget class="QDialog" name="diagramEditorTransSettingDlg">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>521</width>
|
||||||
|
<height>425</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Dialog</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||||
|
<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>25</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">background-color: rgb(196, 196, 196);</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<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>460</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QWidget" name="widget_2" native="true">
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox">
|
||||||
|
<property name="title">
|
||||||
|
<string>基本信息</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_2" stretch="0,1,0,1">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>6</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>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_3">
|
||||||
|
<property name="text">
|
||||||
|
<string>变压器类型</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QComboBox" name="cb_type">
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>两绕组变压器</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>三绕组变压器</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_2">
|
||||||
|
<property name="title">
|
||||||
|
<string>连接信息</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_2">
|
||||||
|
<property name="horizontalSpacing">
|
||||||
|
<number>20</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<layout class="QGridLayout" name="gridLayout" rowstretch="1,1,1,0" columnstretch="1,2">
|
||||||
|
<property name="verticalSpacing">
|
||||||
|
<number>10</number>
|
||||||
|
</property>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QComboBox" name="cb_target"/>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_5">
|
||||||
|
<property name="text">
|
||||||
|
<string>间隔位置</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label_7">
|
||||||
|
<property name="text">
|
||||||
|
<string>间隔类型</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QComboBox" name="cb_level"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QComboBox" name="cb_bayType">
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>进线间隔</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>出线间隔</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0" colspan="2">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>10</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="btn_add">
|
||||||
|
<property name="text">
|
||||||
|
<string>添加</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="btn_delete">
|
||||||
|
<property name="text">
|
||||||
|
<string>删除</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="label_6">
|
||||||
|
<property name="text">
|
||||||
|
<string>间隔名称</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1" rowspan="2">
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_4">
|
||||||
|
<property name="text">
|
||||||
|
<string>连接列表</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QListWidget" name="listWidget"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<spacer name="verticalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>155</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_2">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<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>
|
||||||
|
|
@ -180,7 +180,7 @@
|
||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||||
<property name="spacing">
|
<property name="spacing">
|
||||||
<number>0</number>
|
<number>6</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="topMargin">
|
<property name="topMargin">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue