HMI/include/graphicsItem/graphicsRectItem.h

40 lines
1.1 KiB
C
Raw Normal View History

2026-07-03 11:29:21 +08:00
#ifndef GRAPHICSRECTITEM_H
#define GRAPHICSRECTITEM_H
#include "graphicsBaseItem.h"
class GraphicsRectItem : public GraphicsBaseItem
{
2026-07-03 14:26:43 +08:00
Q_OBJECT
2026-07-03 11:29:21 +08:00
public:
GraphicsRectItem(const QRect &rect, bool isRound = false, QGraphicsItem *parent = 0);
virtual ~GraphicsRectItem();
void resize(int,double, double, const QPointF&) override;
void updateCoordinate() override;
2026-07-08 16:57:46 +08:00
bool isRound() const { return m_bIsRound; }
double ratioX() const { return m_dRatioX; }
double ratioY() const { return m_dRatioY; }
void setRatioX(double rx) { m_dRatioX = rx; }
void setRatioY(double ry) { m_dRatioY = ry; }
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
protected:
QPainterPath shape() override;
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
QRectF m_lastBoudingRect; //记录上一时刻的boundingRect
bool m_bIsRound; //是否为圆角矩形
double m_dRatioX;
double m_dRatioY;
};
#endif