|
|
@@ -69,7 +69,9 @@ void CustomGraphicsScene::mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent) |
|
|
|
} |
|
|
|
|
|
|
|
setMode(Normal); |
|
|
|
} else { |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
QGraphicsScene::mousePressEvent(mouseEvent); |
|
|
|
} |
|
|
|
} |
|
|
@@ -110,8 +112,9 @@ void CustomGraphicsScene::keyPressEvent(QKeyEvent *keyEvent) |
|
|
|
break; |
|
|
|
case Qt::Key_V: |
|
|
|
if (keyEvent->modifiers() & Qt::ControlModifier) { |
|
|
|
// 获取最后一个鼠标事件的位置来确定粘贴位置 |
|
|
|
emit pasteRequestFromScene(views().first()->mapToScene(views().first()->mapFromGlobal(QCursor::pos()))); |
|
|
|
// 使用与 contextMenuEvent 相同的方式获取粘贴位置 |
|
|
|
QPointF pastePos = views().first()->mapToScene(views().first()->viewport()->mapFromGlobal(QCursor::pos())); |
|
|
|
emit pasteRequestFromScene(pastePos); |
|
|
|
keyEvent->accept(); |
|
|
|
} |
|
|
|
break; |
|
|
@@ -141,8 +144,7 @@ void CustomGraphicsScene::contextMenuEvent(QGraphicsSceneContextMenuEvent *conte |
|
|
|
|
|
|
|
menu.exec(contextMenuEvent->screenPos()); |
|
|
|
} else { |
|
|
|
// 如果点击在图形项上,则将事件传递给该图形项处理 |
|
|
|
// (这会调用 HmiComponent::contextMenuEvent) |
|
|
|
// 如果点击在图形项上,则将事件传递给该图形项处理(这会调用 HmiComponent::contextMenuEvent) |
|
|
|
QGraphicsScene::contextMenuEvent(contextMenuEvent); |
|
|
|
} |
|
|
|
} |