Ver código fonte

修改不能复制的错误

master
付春阳 3 dias atrás
pai
commit
d7d248a82b
2 arquivos alterados com 9 adições e 6 exclusões
  1. +7
    -5
      customgraphicsscene.cpp
  2. +2
    -1
      hmimodule.cpp

+ 7
- 5
customgraphicsscene.cpp Ver arquivo

@@ -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);
}
}

+ 2
- 1
hmimodule.cpp Ver arquivo

@@ -117,7 +117,8 @@ void HMIModule::onPasteRequested(const QPointF& scenePos)
if (newItem) {
newItem->setColor(m_copiedColor);
// 为了避免完全重叠,给一个小的偏移量
newItem->setPos(scenePos + QPointF(10, 10));
newItem->setPos(scenePos);
m_scene->addItem(newItem);

// 使用辅助函数完成添加和信号连接
// 注意:setupNewComponent内部会再次生成“创建”日志,这里是合理的


Carregando…
Cancelar
Salvar