Как переместить объект созданный нажатием мыши

Пусть у меня на QGraphicsScene есть QGraphicsItem представляющий кучу камней. У меня с помощью mousePressEvent (клика по куче камней) создается объект QGraphicsItem представляющий собой один камень.

Как мне сделать так, чтобы не отжимая кнопку мыши я мог перемещать этот создавшийся камень?

Мне нужно подсказать направление мысли, целый код я не прошу потому что вопрос получился абстрактным


Ответы (2 шт):

Автор решения: Alexander Chernin
class Stone: public QGraphicsItem {
public:
    Stone(): ..., pressed(false) {
    }

    void mousePressEvent(QGraphicsSceneMouseEvent *event) {
        pressed = true;
    }

    void mouseMoveEvent(QGraphicsSceneMouseEvent *event) {
        if (pressed) {
            // Перемещаем объект вместе с мышью. 
            // Координаты для объекта берем из event
        }
    }

    void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) {
        pressed = false;
    }

private:
    bool pressed;
}
→ Ссылка
Автор решения: MegaMan

К сожалению, я не понял как внедрить решение Александра.

Оставляю этот ответ, чтобы помочь страждущим,таким как я.

В итоге я решил проблему следующим способом:

В конструкторе кучи я создаю элемент камня и просто напросто прячу его.

Таким образом при следующим клике на кучу мы уже можем с ним работать.

При клике на кучу мы просто показываем камень и в методе mouseMoveEvent кучи его двигаем.

Возможно это костыльно и велосипедно,но я первый раз работаю с QT. Более подробную реализацию можно увидеть тут: https://github.com/religious0atheist/nim_games

→ Ссылка