Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt-拖放-自定义图形场景-事件错误_C++_Qt_Drag And Drop_Qgraphicsview - Fatal编程技术网

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

C++ Qt-拖放-自定义图形场景-事件错误,c++,qt,drag-and-drop,qgraphicsview,C++,Qt,Drag And Drop,Qgraphicsview,我在侧面创建了简单的d&d drop-soemthing-like QT Creator菜单-ListView和DragScene(我自己的QGraphicscene子类)。我想创建一个新的图形项目(我已经为它得到了我的客户mclasses)添加到那里-在我掉下来的地方。我创建了自己的类: DragScene.h #include <QGraphicsScene> #include <QDebug> #include <QMimeData> #include

我在侧面创建了简单的d&d drop-soemthing-like QT Creator菜单-ListView和DragScene(我自己的QGraphicscene子类)。我想创建一个新的图形项目(我已经为它得到了我的客户mclasses)添加到那里-在我掉下来的地方。我创建了自己的类:

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);
};
#包括
#包括
#包括
#包括“CustomObj.h”
类别DragScene:公共Qgraphicscene
{
公众:
DragScene(QObject*parent=0);
受保护的:
无效dragEnterEvent(QGRAPHICSCENDAGDROPEREVENT*事件);
无效dragMoveEvent(QGraphicsSceneDragDropEvent*事件);
无效dragLeaveEvent(QGraphicsSceneDragDropEvent*事件);
void dropEvent(Qgraphicscendragdropevent*事件);
};
dragsene.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";
}
#包括“dragsene.h”
DragScene::DragScene(QObject*父对象)
:qgraphicscene(父级)
{
}
void DragScene::dragEnterEvent(Qgraphicscendragdropevent*事件)
{
}
无效DragScene::dragMoveEvent(QGraphicsSCeneDragPropertEvent*事件)
{
}
无效DragScene::dragLeaveEvent(QGraphicsSCeneDragPropertEvent*事件)
{
}
void DragScene::dropEvent(QGraphicsSCeneDragPropertEvent*事件)
{
CustomObj*newObject=newcustomobj(0,0,50,50);
//新建对象->设置位置(事件->位置().x(),事件->位置().y());//(1)
此->添加项(新对象);
qDebug()这个怎么样:

#include <QGraphicsSceneDragDropEvent> 
#包括

您最初的问题已经解决(我投票决定关闭它,因为它只是一个简单的标题被遗忘了)。请不要更新您的问题来改变它的目的。而是打开一个新的问题,只包含与实际问题相关的材料。Thx,这解决了它。我现在觉得很傻。但为什么呢?QT页面上的示例没有包含它(ew.Label:)@Arker如果您指的是示例中使用的
qdropent
,那么示例中包含了
QtGui
,其中几乎包含了GUI相关的所有内容。但您不应该这样做。该示例不涉及QGraphicscene,因此不需要包含该类。
#include <QGraphicsSceneDragDropEvent>