【问题标题】:Adding a shortcut to QAction inside QGraphicsScene context menu在 QGraphicsScene 上下文菜单中添加 QAction 的快捷方式
【发布时间】:2020-08-05 17:44:59
【问题描述】:

我的QGraphicsScene 子类 WorkspaceScene 包含一个变量,用于稍后在上下文菜单中使用的每个操作。我有一个设置动作并添加快捷方式的函数(在类的构造函数中调用),然后我有一个创建上下文菜单的函数,在我重新实现的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);
}

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

【问题讨论】:

  • deleteAction->setShortcut(Qt::Key_Delete);代替deleteAction->setShortcut(QKeySequence::Delete);

标签: c++ qt qgraphicsscene qmenu qaction


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-07-11
    • 1970-01-01
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    相关资源
    最近更新 更多