如何接受QGraphicsScene和QGraphicsItem丢弃事件
How to accept both QGraphicsScene and QGraphicsItem drop event
我正在做一个项目,我正在使用QGraphicsScene使用QGraphicsItem显示一些多媒体对象,如图像和文本。我有一个Widget,可以从中将一些文件从用户计算机拖放到Scene,从而触发创建新的QGraphicsItem。
好吧,现在我要做的是……当我从Widget中删除一个元素时,我想制作那些QGraphicsItem来更改它们的图像、文本等。换句话说,我想让它们表现得像某种容器,可以显示被丢弃的元素。大部分功能已经实现,但我无法使QGraphicsItem与QGraphicsScene同时接受丢弃事件。当其中一个工作时,另一个不工作。
在我的QGraphicsScene中的每个"拖动"事件的末尾,我插入了以下代码:
void SpatialScene::dragEnterEvent(QGraphicsSceneDragDropEvent *event)
{
(...)
QGraphicsScene::dragEnterEvent(event);
}
当我这样做的时候,到达我的QGraphicsItem的事件很好,但我所有的丢弃事件都被QGraphicsScene拒绝了,我没有Ideia为什么。(我在dropEvent方法中收到IgnoreAction)。
我不知道我是否已经把我的问题说清楚了,但是。。。有人能帮我吗?如何使QGraphicsScene及其QGraphicsItem都接受丢弃事件?
我刚刚遇到了同样的问题,并在另一个线程中找到了解决方案。
这里的技巧是也接受QGraphicsScene::dragMoveEvent()中的事件!
原因是DEFAULT实现在鼠标下没有项的情况下忽略拖放事件!
另请参阅:http://www.qtcentre.org/threads/8022-QGraphicsScene-doesn-t-accept-Drops
相关文章:
- Android NDK传感器向事件队列报告奇怪的间隔
- 从文本文件中读取时钟时间和事件时间并进行处理
- WMI检测进程创建事件-c++
- EvtExportLogneneneba API正在将远程计算机的事件日志保存到远程PC本身.如何将其保存到主机
- 处理闪烁窗口事件
- C++Builder中的OnClick事件签名存在问题
- 跟踪滚动条上的鼠标事件
- 什么是事件表 (wxWidgets)?
- 将QGraphicsItem的移动区域限制在多边形区域内
- 如何在 MFCaptureEngine 中获取"Camera removed"事件
- 给定顺序中的事件处理
- 当服务中的事件被触发时,如何将响应从服务发送回客户端?
- 在 C++/CLI 中将 .NET 事件从一个 DLL 引发到另一个 DLL
- QT:检测 QGraphicsItem 上的鼠标左键和右键按下事件
- 如何接受QGraphicsScene和QGraphicsItem丢弃事件
- QGraphicsScene一直在调用QGraphicsItem绘制事件
- 如何仅执行 qgraphicsitem 的鼠标事件?(忽略 qGraphicsView 的其余 mouseevent)
- 让多个QGraphicsItem处理一个鼠标事件
- 如何处理从QGraphicsView和QGraphicsItem同时捕获的鼠标事件
- 重叠的QGraphicsItem-s悬停事件