Qt 获取QKeyEvent的关键位置(多平台)

Qt 获取QKeyEvent的关键位置(多平台),qt,keyboard,qt4,qkeyevent,Qt,Keyboard,Qt4,Qkeyevent,为了创建适用于所有键盘布局的基于位置的键盘快捷键,我需要识别一个物理键盘键,而不需要在其顶部设置键盘布局。理想情况下,我希望检索QKeyEvent的扫描码,因为这与键盘布局无关 例如,如果我想将Shift+Q映射到音量降低,将Shift+W映射到音量升高(在美国键盘布局上,两个键彼此相邻),我可以将它们映射到Shift+0x10和Shift+0x11。这样,它也适用于法语键盘布局,其中Q和A是切换的。它甚至适用于DVORAK键盘布局或其他外型键盘布局,因为键盘布局将被忽略 现在的问题是:我如何检

为了创建适用于所有键盘布局的基于位置的键盘快捷键,我需要识别一个物理键盘键,而不需要在其顶部设置键盘布局。理想情况下,我希望检索QKeyEvent的扫描码,因为这与键盘布局无关

例如,如果我想将
Shift+Q
映射到音量降低,将
Shift+W
映射到音量升高(在美国键盘布局上,两个键彼此相邻),我可以将它们映射到
Shift+0x10
Shift+0x11
。这样,它也适用于法语键盘布局,其中Q和A是切换的。它甚至适用于DVORAK键盘布局或其他外型键盘布局,因为键盘布局将被忽略

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


完成任务,但对OSX不起作用:\

您已经有了最多平台的方式。除了Qt还没有在OSX上实现它,至少在Qt5.7上是这样

请随时修补您的Qt副本,以包括HID事件点击以获取扫描代码,请参见例如