No need intercept mouse events.
{
public:
{
setFlags(ItemIsMovable | ItemSendsGeometryChanges);
}
protected:
{
if(change == ItemPositionChange)
return QPointF(scenePos
().
x(), value.
toPointF().
y());
}
};
class EllipseItem : public QGraphicsEllipseItem
{
public:
EllipseItem(const QRectF & rect, QGraphicsEllipseItem * parent = nullptr)
: QGraphicsEllipseItem(rect, parent)
{
setFlags(ItemIsMovable | ItemSendsGeometryChanges);
}
protected:
QVariant itemChange(GraphicsItemChange change, const QVariant & value) override
{
if(change == ItemPositionChange)
return QPointF(scenePos().x(), value.toPointF().y());
return QGraphicsEllipseItem::itemChange(change, value);
}
};
To copy to clipboard, switch view to plain text mode
Bookmarks