Добавление ярлыка для QAction внутри контекстного меню QGraphicsScene - PullRequest
0 голосов
/ 05 августа 2020

Мой 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);
}

Это успешно настраивает действия, и они работают внутри контекстного меню, но ярлык не работает. Как правильно это сделать?

1 Ответ

0 голосов
/ 05 августа 2020

Я решил это, добавив QAction к родительскому элементу QGraphicsView QGraphicsScene.

...