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