Qt - 拖放 - 自定义图形场景 - 事件错误
Qt - Drag and Drop - Custom Graphic Scene - Event error
我创建了简单的d&d drop-像QT Creator菜单一样 - 侧面的ListView和DragScene(我自己的QGraphicsScene子类)。我想创建新的图形项目(我已经为它获得了我的客户类)添加到那里 - 在我放置它的位置。我创建了自己的类:
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);
};
拖拽场景.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(event->pos().x(), event->pos().y()); ^
"类 QGraphicsSceneDragDropEvent"类的前向声明 QGraphicsSceneDragDropEvent; ^
无效使用不完整的类型"类 QGraphicsSceneDragDropEvent" newObject->setPos(event->pos().x(), event->pos().y()); ^
"类 QGraphicsSceneDragDropEvent"类的前向声明 QGraphicsSceneDragDropEvent; ^
我不知道为什么了 - 我看到很少的例子和那些使用事件而没有任何麻烦的例子,例如:Qt - 使用图形视图框架拖放
编辑 1:添加:
#include <QGraphicsSceneDragDropEvent>
重新编译了它,但现在我可以看到我的事件没有传递任何位置 - 每个对象都指向 (0,0)。
这个怎么样:
#include <QGraphicsSceneDragDropEvent>
- glfw 的基本设置会导致与 emscripten 生成的 js 文件中的事件侦听器有关的运行时错误
- 尝试使用 EvtSetChannelConfigProperty() 函数更新最大事件日志文件大小时插入的错误值
- WFS_ERR_SIU_INVALID_PORT(-801)启用SIU事件时错误
- 创建进程使用路径时出现错误事件:类型 "char *" 的 E0167 参数与类型 "LPWSTR" 的参数不兼容
- std::函数,带有 SDL 事件回调的 lambda 错误
- 错误:无法列出内核事件:不可用的内核示踪剂(LTTNG)
- 键按下事件错误 Qt 实现函数时
- SDL的事件处理错误
- 窗口创建错误 - 可能是事件处理
- cocos2d-x添加触摸事件回调错误
- Qt - 拖放 - 自定义图形场景 - 事件错误
- Nodejs C++事件发射器.加载项错误.MakeCallback中没有函数.method=发出中止陷阱:6
- 本机C++11事件-没有任何绑定的事件引发错误
- 当事件循环在错误槽启动时,ContentNotFoundError发生时,QNetworkReply发出两次错误信号
- GetNumberOfEventLogRecords返回错误的事件日志数
- c++ MFC -在CDialog::OnSize事件(GetWindowRect)上没有抛出运行时错误的代码执行失败
- 事件和参数列表错误
- 异步事件:已定义链接器错误[Windows Update API]
- C 套接字/轮询错误地返回 POLLOUT 事件
- c++定时事件控制台错误