#ifndef ELECTRICSVGITEM_H #define ELECTRICSVGITEM_H #include "graphicsBaseItem.h" #include 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 map); virtual void updateCurState(monitorItemState e) override; 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 m_mapSvg; QByteArray _tempSvg; //保存直接加载的svg数据 }; #endif