DiagramDesigner/diagramCavas/include/diagramEditor/editPanel.h

54 lines
1.6 KiB
C++

#ifndef EDITPANEL_H
#define EDITPANEL_H
//编辑文本项生成组态图
#include <QWidget>
#include <QPointer>
#include "global.h"
class EditView;
class EditScene;
class QVBoxLayout;
//class QGraphicsGridLayout;
class QGraphicsLinearLayout;
class QPushButton;
class EditMainRect;
class EditRowData;
class EditContainerItem;
class DiagramEditorWizard;
class DiagramEditorBaseBlock;
class EditBaseItem;
class EditPanel : public QWidget
{
Q_OBJECT
public:
EditPanel(QWidget *parent = nullptr);
~EditPanel();
void initByWizardInfo();
void initBlockConnection(); //初始化block之间的连接信息
void setOperateWizard(QPointer<DiagramEditorWizard> p) {_curWizard = p;}
public slots:
void onWidthChanged(int width);
void onContainerSizeChanged(EditContainerItem*); //容器大小改变时调整内部大小
private:
void initial();
void calculateContainerWidth(EditContainerItem*); //根据间隔数量计算容器宽度 todo:区分上下间隔
int getContainerBusType(QMap<int,QList<DiagramEditorBaseBlock*>>); //返回容器中母线类型(单双)
EditBaseItem* getItemByName(const QString&); //根据名称获取指定item
private:
EditView* m_pEditView;
EditScene* m_pEditScene;
QVBoxLayout* _layout;
EditMainRect* _mainWidget;
QGraphicsLinearLayout* _widgetLayout;
QGraphicsProxyWidget* m_addBtnPro;
int _maxWidth;
int _maxHeight;
QList<EditRowData*> _lstData;
QMap<int,QMap<int,EditContainerItem*>> _mapStruct;
QPointer<DiagramEditorWizard> _curWizard;
};
#endif