Qt菜单栏活动

时间:2015-12-17 07:37:12

标签: c++ qt

我使用“设计”选项在Qt创建者中添加了菜单和菜单项。然后,我点击下面的相关操作,然后点击“转到插槽”。这将我带到单击该菜单项时将执行的代码。完美 - 几乎。我想区分单击和按住Shift键单击菜单项。看起来我可以通过执行以下操作来确定是否使用shift按钮修改了事件:

if (event->modifiers() & Qt::ShiftModifier) {
    ...
}

问题是菜单点击操作没有传递任何事件。

我能以某种方式做我想做的事吗?我是否需要弄清楚如何传递事件 - 或者是否有其他方法来测试按下shift键?

谢谢!

1 个答案:

答案 0 :(得分:1)

在正在调用的插槽中,您可以使用QGuiApplication::keyboardModifiers()来获取当前的键盘修饰符:

void MainWindow::on_action_triggered() {
    if (QApplication::keyboardModifiers() & Qt::ShiftModifier) {
        // Shift key is down.
    }
}
相关问题