我創建了簡單的d-& d-drop,就像QT Creator菜單 - ListView和DragScene(我自己的QGraphicsScene的子類)。我想創建新的圖形項目(我已經有我的客戶mclasses)添加到那裏 - 在我放棄它的地方。我創建了自己的類:Qt - 拖放 - 自定義圖形場景 - 事件錯誤
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))中的那些功能我得到的錯誤:
無效使用不完全類型的「類QGraphicsSceneDragDropEvent」 newObject-> setPos(事件 - > POS()×( ),event-> pos()。y()); ^
'class QGraphicsSceneDragDropEvent'類的前向聲明 QGraphicsSceneDragDropEvent; ^
無效使用不完整的類型的 '類QGraphicsSceneDragDropEvent' newObject-> setPos(事件 - >正()X(),事件 - >正()Y()); ^
'class QGraphicsSceneDragDropEvent'類的前向聲明 QGraphicsSceneDragDropEvent; ^
我不知道爲什麼了 - 我看到幾個exemples和那些目不轉睛期運用事件沒有任何麻煩,如: Qt - drag and drop with graphics view framework
編輯1: 添加:
#include <QGraphicsSceneDragDropEvent>
recolved它,但現在我可以看到我的事件沒有傳遞任何位置 - 每個對象都被指定爲(0,0)。
你最初的問題就解決了(我投票決定關閉它,因爲它是被遺忘的一個簡單的報頭)。請不要更新你的問題來改變它的目的。而是開一個新的問題,只包括與實際問題相關的材料。 – undu