自定义快捷方式上下文菜单

时间:2016-06-01 13:08:07

标签: c++ qt

我的MainWindow中有一个QGraphicsView我在我的画布上有一个自定义的“抓取”功能(在我的MainWindow中是QGraphicsView)当我按下两个鼠标按钮时调用。

所以我只想在按下CTRL +右键单击时激活我的上下文菜单,并且只有右键单击才能激活。保持ActionsContextMenu政策非常重要。

有办法吗?

1 个答案:

答案 0 :(得分:1)

只需检查KeyboardModifier即可。您可以指定所需的修改器。在您的情况下,它是ControlModifier。然后,覆盖方法mousePressEvent()

void yourClass::mousePressEvent(QMouseEvent *event)
{
    if (event->button() == Qt::RightButton &&
        event->modifiers() == Qt::ControlModifier)
    {
        // call your context menu
    }
}

如果您想使用此功能,则需要拨打QMenu。只需在您的班级中添加此功能:

void yourClass::showMenu()
{
    QMenu contextMenu(this);

    QAction action("My Action", this);
    contextMenu.addAction(&action);

    contextMenu.exec(); 
}