Qt - 拖放 - 自定义图形场景 - 事件错误

Qt - Drag and Drop - Custom Graphic Scene - Event error

我创建了简单的 d&d drop - 类似 QT Creator 菜单的东西 - 侧面的 ListView 和 DragScene(我自己的 QGraphicsScene 的子class)。我想创建新的图形项目(我已经为它定制了 mclasses)以将其添加到那里 - 在我放下它的地方。我创建了自己的 class:

DragScene.h

#include <QGraphicsScene>
#include <QDebug>
#include <QMimeData>

#include "CustomObj.h"

class DragScene : public QGraphicsScene
{
public:
    DragScene(QObject* parent = 0);

 protected:
     void dragEnterEvent(QGraphicsSceneDragDropEvent *event);
     void dragMoveEvent(QGraphicsSceneDragDropEvent *event);
     void dragLeaveEvent(QGraphicsSceneDragDropEvent *event);
     void dropEvent(QGraphicsSceneDragDropEvent *event);
};

DragScene.cpp

#include "DragScene.h"

DragScene::DragScene(QObject* parent)
    : QGraphicsScene(parent)
{
}

void DragScene::dragEnterEvent(QGraphicsSceneDragDropEvent *event)
{
}

void DragScene::dragMoveEvent(QGraphicsSceneDragDropEvent *event)
{
}

void DragScene::dragLeaveEvent(QGraphicsSceneDragDropEvent *event)
{
}

void DragScene::dropEvent(QGraphicsSceneDragDropEvent *event)
{
        CustomObj* newObject = new CustomObj(0,0,50,50);
  //      newObject->setPos(event->pos().x(), event->pos().y()); //(1)
        this->addItem(newObject);

        qDebug() <<"New object";
}

现在我无法设置那些参数。每次我尝试在这些函数中使用事件(如 (1) 中)时,我都会收到错误消息:

invalid use of incomplete type 'class QGraphicsSceneDragDropEvent' newObject->setPos(event->pos().x(), event->pos().y()); ^

forward declaration of 'class QGraphicsSceneDragDropEvent' class QGraphicsSceneDragDropEvent; ^

invalid use of incomplete type 'class QGraphicsSceneDragDropEvent' newObject->setPos(event->pos().x(), event->pos().y()); ^

forward declaration of 'class QGraphicsSceneDragDropEvent' class QGraphicsSceneDragDropEvent; ^

我不知道为什么了 - 我看到的例子很少,而且那些使用事件没有任何问题的例子,比如: Qt - drag and drop with graphics view framework

编辑 1: 添加:

#include <QGraphicsSceneDragDropEvent>

recolved 它,但现在我可以看到我的事件没有通过任何位置 - 每个对象都被设置为 (0,0)。

这个怎么样:

#include <QGraphicsSceneDragDropEvent>