我使用“设计”选项在Qt创建者中添加了菜单和菜单项。然后,我点击下面的相关操作,然后点击“转到插槽”。这将我带到单击该菜单项时将执行的代码。完美 - 几乎。我想区分单击和按住Shift键单击菜单项。看起来我可以通过执行以下操作来确定是否使用shift按钮修改了事件:
if (event->modifiers() & Qt::ShiftModifier) {
...
}
问题是菜单点击操作没有传递任何事件。
我能以某种方式做我想做的事吗?我是否需要弄清楚如何传递事件 - 或者是否有其他方法来测试按下shift键?
谢谢!
答案 0 :(得分:1)
在正在调用的插槽中,您可以使用QGuiApplication::keyboardModifiers()
来获取当前的键盘修饰符:
void MainWindow::on_action_triggered() {
if (QApplication::keyboardModifiers() & Qt::ShiftModifier) {
// Shift key is down.
}
}