C++ Qt-拖放-自定义图形场景-事件错误
我在侧面创建了简单的d&d drop-soemthing-like QT Creator菜单-ListView和DragScene(我自己的QGraphicscene子类)。我想创建一个新的图形项目(我已经为它得到了我的客户mclasses)添加到那里-在我掉下来的地方。我创建了自己的类: DragScene.hC++ 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
#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>