【问题标题】:Get key position of QKeyEvent (multiplatform)获取 QKeyEvent 的关键位置(多平台)
【发布时间】:2016-07-14 14:52:49
【问题描述】:

为了制作适用于所有键盘布局的基于位置的键盘快捷键,我需要识别一个物理键盘键,而不是在它上面的键盘布局。理想情况下,我想检索 QKeyEvent 的扫描码,因为它不依赖于键盘布局。

例如,如果我想将 Shift+Q 映射到 volume-down 并将 Shift+W 映射到 volume-up(两个键是相邻的根据this scancode set,我可以将它们映射到Shift+0x10Shift+0x11。这样,它也适用于切换 Q 和 A 的法语键盘布局。它甚至适用于 DVORAK 键盘布局或其他奇特的键盘布局,因为键盘布局将被忽略。

现在,问题是:如何检索 QKeyEvent 的扫描码,或任何其他说明物理键位置的参数,忽略键盘布局,这将在所有平台上工作?我希望它可以在 Windows、Linux 和 OSX 上运行。

QKeyEvent::nativeScanCode() 完成了工作,但它不适用于 OSX:\

【问题讨论】:

    标签: qt keyboard qt4 qkeyevent


    【解决方案1】:

    您已经拥有了最跨平台的方式。除了 Qt 还没有为 OS X 实现它,至少从 Qt 5.7 开始。

    随意修补您的 Qt 副本以包含 HID 事件点击以获取扫描码,例如this question.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-23
      • 1970-01-01
      • 1970-01-01
      • 2014-05-09
      • 1970-01-01
      • 2011-12-17
      • 1970-01-01
      相关资源
      最近更新 更多