#ifndef GRAPHICSBASEITEM_H #define GRAPHICSBASEITEM_H #include "itemControlHandle.h" #include #include #include #include class GraphicsBaseItem : public QObject, public QGraphicsItem { Q_OBJECT public: GraphicsBaseItem(QGraphicsItem *parent); virtual ~GraphicsBaseItem(); public: QPen pen() { return m_pen; } void setPen(const QPen &pen) { m_pen = pen; } QColor penColor() { return m_pen.color(); } void setPenColor(const QColor &color) { m_pen.setColor(color); } QBrush brush() { return m_brush; } void setBrush(const QBrush &brush) { m_brush = brush; } QColor brushColor() { return m_brush.color(); } void setBrushColor(const QColor &color) { m_brush.setColor(color); } double width() { return m_dWidth; } void setWidth(double); double height() { return m_dHeight; } void setHeight(double); int collidesWithHandle(const QPointF&); virtual QRectF boundingRect() const { return m_boundingRect; } virtual QPainterPath shape() {} virtual void updateHandles(); virtual void resize(int,double, double, const QPointF&) {} virtual void updateCoordinate() {} virtual void move(const QPointF& point) { Q_UNUSED(point); } virtual QVariant itemChange(QGraphicsItem::GraphicsItemChange, const QVariant&); virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent*); //handle相关 virtual void setHandleVisible(bool); virtual QPointF getSymmetricPointPos(int); //获取对称点的坐标位置,缩放的时候需要以对称点为锚点 protected: QPen m_pen; QBrush m_brush; double m_dWidth; double m_dHeight; QRectF m_boundingRect; QVector m_vecHanle; }; #endif