2024年3月13日发(作者:)

void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);

virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);

Q_SIGNALS:

void clicked();

void clickedId(int);

private:

QPointF pressedScenePoint;

QPointF m_offset;

QPointF m_pos;

Qt::TransformationMode mode;

QPixmap m_pixmap;

bool isPressed;

int m_type;

int m_id;

qreal m_pointPercent;

};

#endif // PICTRUEITEM_H

//

#include "pictrueitem.h"

#include

#include

#include

PictrueItem::PictrueItem(QGraphicsItem *parent)

:QGraphicsObject(parent),

isPressed(false),

mode(Qt::SmoothTransformation),

m_type(0),

m_id(0),

m_pointPercent((qreal)0.0)

{

}

PictrueItem::PictrueItem(const QPixmap &pixmap, QGraphicsItem *parent)

:QGraphicsObject(parent),

isPressed(false),

mode(Qt::SmoothTransformation),

m_type(0)

{

m_pixmap = pixmap;

}

PictrueItem::~PictrueItem()

{

}

void PictrueItem::setPixmap(const QPixmap &pixmap)

{

prepareGeometryChange();

m_pixmap = pixmap;

update();

}

QPixmap PictrueItem::pixmap() const

{

return m_pixmap;

}

QRectF PictrueItem::boundingRect() const

{

if(m_())

return QRectF();

return QRectF(m_offset, m_() / m_PixelRatio());

}

void PictrueItem::setTransformationMode(Qt::TransformationMode mode)

{

if (mode != this->mode)

{