我在菜单栏里加入了快捷键,导致我在其他窗口点击该键没有任何反应,也接受不到keyPressEvent,这会是什么原因呢?
经检查发现是QAction默认的shortcutContext是Qt::WindowShortcut,也就是快捷键对整个窗口都有效的,只需要设置一下QAction的shortcutContext,setShortcutContext(Qt::WidgetShortcut);即可解决问题,使该快捷键只在菜单栏激活后有效,而不会拦截住其他窗口的键盘事件了。
我在菜单栏里加入了快捷键,导致我在其他窗口点击该键没有任何反应,也接受不到keyPressEvent,这会是什么原因呢?
经检查发现是QAction默认的shortcutContext是Qt::WindowShortcut,也就是快捷键对整个窗口都有效的,只需要设置一下QAction的shortcutContext,setShortcutContext(Qt::WidgetShortcut);即可解决问题,使该快捷键只在菜单栏激活后有效,而不会拦截住其他窗口的键盘事件了。