为了制作适用于所有键盘布局的基于位置的键盘快捷键,我需要识别物理键盘键,而不需要键盘布局。理想情况下,我想检索QKeyEvent的扫描码,因为这不依赖于键盘布局。
例如,如果我想将Shift+Q
映射到音量降低,将Shift+W
映射到音量升级(两个键是在美国键盘布局上彼此相邻)根据this scancode set,我可以将这些映射到Shift+0x10
和Shift+0x11
。这样,它也适用于法语键盘布局,其中Q和A被切换。它甚至适用于DVORAK键盘布局或其他异常键盘布局,因为键盘布局将被忽略。
现在,问题是:我如何检索QKeyEvent的扫描码,或任何其他参数,告诉物理键的位置,忽略键盘布局,这将适用于所有平台?我希望它能在Windows,Linux和OSX上运行。
QKeyEvent::nativeScanCode()完成了工作,但它不适用于OSX:\
答案 0 :(得分:1)
您已经拥有最多平台的方式。除了Qt还没有为OS X实现它,至少从Qt 5.7开始。
随意修补您的Qt副本以包含HID事件点按以获取扫描码,请参阅例如this question