Qt菜单栏事件

Qt menu bar events

本文关键字:事件 菜单栏 Qt      更新时间:2023-10-16

我使用"设计"选项在Qt创建者中添加了菜单和菜单项。然后,我点击了下面的相关操作,并点击了"转到插槽"。这将带我进入当我单击该菜单项时将执行的代码。完美——差不多。我想区分一下菜单项上的点击和移位点击。看起来我可以通过这样做来确定事件是否被切换按钮修改:

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

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

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

谢谢!

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

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