#ifndef GRAPHICSPOLYGONITEM_H #define GRAPHICSPOLYGONITEM_H #include "graphicsBaseItem.h" class GraphicPolygonItem : public GraphicsBaseItem { Q_OBJECT public: GraphicPolygonItem(QGraphicsItem *parent = 0); virtual ~GraphicPolygonItem(); void resize(int,double, double, const QPointF&) override; void updateCoordinate() override; void move(const QPointF&) override; QJsonObject serialize() const override; static QGraphicsItem *createFromJson(const QJsonObject &obj); void editShape(int, const QPointF&) override; void addPoint(const QPointF&) override; bool endDrawing() override; QPolygonF getPoints(void) { return m_points; } protected: QPainterPath shape() override; QRectF boundingRect(); void paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget*) override; private: void updateHandles() override; QPolygonF m_lastPoints; //记录上一时刻的点集数据,用于缩放等操作 QPolygonF m_points; }; #endif