在 QGraphicsScene 上下文菜单中添加 QAction 的快捷方式

Adding a shortcut to QAction inside QGraphicsScene context menu

My QGraphicsScene subclass WorkspaceScene 包含一个用于稍后在上下文菜单中使用的每个操作的变量。我有一个设置动作和添加快捷方式的函数(在 class 的构造函数中调用),然后我有一个创建上下文菜单的函数,它在 contextMenuEvent 我重新实现的功能。

下面是一些相关代码:

// Constructor
WorkspaceScene::WorkspaceScene()
{
    _setUpActions();
}

// ContextMenuEvent
void WorkspaceScene::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
{
    _setUpItemMenu();
    _itemContextMenu.exec(event->screenPos());
}

void WorkspaceScene::_setUpActions()
{
    deleteAction = new QAction("Delete");
    deleteAction->setShortcut(QKeySequence::Delete); // This should add the shortcut
    connect(deleteAction, &QAction::triggered, this, &WorkspaceScene::deleteItemSlot);
}

void WorkspaceScene::_setUpItemMenu()
{
    _itemContextMenu.clear();
    _itemContextMenu.addAction(deleteAction);
}

这成功地设置了操作,它们在上下文菜单中工作,但快捷方式似乎不起作用。这样做的正确方法是什么?

我通过将 QAction 添加到 QGraphicsScene 的 QGraphicsView 父级来解决它。