DiagramDesigner/diagramCavas/include/graphicsItem/electricSvgItem.h

33 lines
1.2 KiB
C++

#ifndef ELECTRICSVGITEM_H
#define ELECTRICSVGITEM_H
#include "graphicsBaseItem.h"
#include <QGraphicsSvgItem>
class ElectricSvgItem :public GraphicsProjectModelItem
{
Q_OBJECT
public:
ElectricSvgItem(const QRect &rect, bool genNewPort = true,QGraphicsItem *parent = 0); //genNewPort生成新接线点
ElectricSvgItem(const ElectricSvgItem&);
virtual ~ElectricSvgItem();
virtual ElectricSvgItem* clone() const override;
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);
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;
QMap<QString,QByteArray> m_mapSvg;
QByteArray _tempSvg; //保存直接加载的svg数据
};
#endif