2
我试图将自定义事件发送到现有的QGraphicsScene。 第一个事件正在与所需的位置在现场被解雇。从现在开始,所有其他事件即使与其他地点一起提供,也会进入同一地点(作为第一个事件)。 我手动点击场景内的某个地方后,它会“重新启动”,并在正确的位置接受下一个自定义事件(所有其他人仍然会去错误的地方)。发送自定义鼠标事件到QGraphicsScene
我的代码:
qreal sceneX = customX;
qreal sceneY = customY;
QGraphicsView* view = m_scene->views()[0];
QPoint ptView = view->mapFromScene(sceneX, sceneY);
QPoint ptGlobal = view->viewport()->mapToGlobal(ptView);
QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMouseRelease);
event.setScenePos(QPoint(sceneX, sceneY));
event.setPos(QPoint(sceneX, sceneY));
event.setScreenPos(ptGlobal);
event.setButton(Qt::LeftButton);
event.setButtons(Qt::LeftButton);
event.setModifiers(QApplication::keyboardModifiers());
qApp->sendEvent(m_scene, &event);
customX和customY只是任意x和y,我动态生成。我多次用不同的customX和customY发送示例代码。
你可以提供一个什么道理呢?正如我写的,我无法推断出这是否是偶然发生的事情,巧合还是真正的解决方案。 – IInspectable 2014-08-08 09:25:02