我的MainWindow中有一个QGraphicsView
我在我的画布上有一个自定义的“抓取”功能(在我的MainWindow中是QGraphicsView
)当我按下两个鼠标按钮时调用。
所以我只想在按下CTRL +右键单击时激活我的上下文菜单,并且只有右键单击才能激活。保持ActionsContextMenu
政策非常重要。
有办法吗?
答案 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();
}