在 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 父级来解决它。
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 父级来解决它。