我没有找到使用 Qt 5 检查键盘状态的方法。
例如,我想检查特定键(箭头键或任何其他键)是否按下。
不是开箱即用。当 Qt 处理鼠标和键盘事件时,它会跟踪鼠标按钮和键盘修饰符的状态,并在 和 中返回Q(Gui)Application::mouseButtons()
它们keyboardModifiers()
。
因此,您可以通过全局事件过滤器来做同样的事情:在 上安装事件过滤器QCoreApplication
,或覆盖QCoreApplication::notify
;并跟踪所有键的状态。不过,我不确定这有多大用处;为什么你不只是处理当前关注的小部件链中的按键?
(请注意,上述内容仅适用于 Qt 应用程序具有焦点的情况;如果您正在谈论即使没有焦点也检测键盘状态,Qt 根本没有帮助。)