DiagramDesigner/diagramCavas/include/graphicsItem/functionModelItem/electricFunctionModelSvgItem.h

35 lines
1.4 KiB
C++

#ifndef ELECTRICFUNCTIONMODELSVGITEM_H
#define ELECTRICFUNCTIONMODELSVGITEM_H
#include "graphicsFunctionModelItem.h"
class ElectricFunctionModelSvgItem :public GraphicsFunctionModelItem
{
Q_OBJECT
public:
Q_PROPERTY(QFileInfo Image READ getImage_1 WRITE setImage_1)
public:
ElectricFunctionModelSvgItem(const QRect &rect, bool genNewPort = true,QGraphicsItem *parent = 0); //genNewPort生成新接线点
virtual ~ElectricFunctionModelSvgItem();
void resize(int,double, double, const QPointF&) override;
void updateCoordinate() override;
void move(const QPointF&) override;
virtual void loadSvg(){};
virtual void loadSvg(QByteArray); //第二种load直接加载图片
virtual void updateMapSvg(QMap<QString,QByteArray> map,QString sIndex = ""); //index:空全部更新
virtual void updateCurState(MonitorItemState e) override;
virtual QFileInfo getImage_1() const;
virtual void setImage_1(QFileInfo);
protected:
virtual QPainterPath shape() override;
virtual void editShape(int, const QPointF&) override;
virtual void paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget*) override;
protected:
QRectF m_lastBoudingRect; //记录上一时刻的boundingRect
QSvgRenderer* m_pRender; //默认
QSvgRenderer* m_pCustomRender; //定制
QMap<QString,QByteArray> m_mapSvg;
QByteArray _tempSvg; //保存直接加载的svg数据
};
#endif