HMI/include/graphicsItem/graphicsPolygonItem.h

38 lines
1008 B
C
Raw Normal View History

2026-07-03 11:29:21 +08:00
#ifndef GRAPHICSPOLYGONITEM_H
#define GRAPHICSPOLYGONITEM_H
#include "graphicsBaseItem.h"
class GraphicPolygonItem : public GraphicsBaseItem
{
2026-07-03 14:26:43 +08:00
Q_OBJECT
2026-07-03 11:29:21 +08:00
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;
2026-07-03 11:29:21 +08:00
void addPoint(const QPointF&) override;
bool endDrawing() override;
2026-07-03 11:29:21 +08:00
QPolygonF getPoints(void) { return m_points; }
protected:
QPainterPath shape() override;
QRectF boundingRect();
void paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget*) override;
2026-07-03 11:29:21 +08:00
private:
void updateHandles() override;
2026-07-03 11:29:21 +08:00
QPolygonF m_lastPoints; //记录上一时刻的点集数据,用于缩放等操作
QPolygonF m_points;
};
#endif