Чтобы сделать быстрые клавиши на основе положения, которые работают для всех раскладок клавиатуры, мне нужно определить физическую клавиатуру, без раскладки клавиатуры поверх нее. В идеале я хотел бы получить scancode QKeyEvent, потому что это не зависит от клавиатуры.Получить ключевую позицию для QKeyEvent (multiplatform)
Например, если я хотел бы карту Shift+Q
к объему вниз и Shift+W
к объему до (две клавиши, которые находятся рядом друг с другом на раскладке клавиатуры) я мог бы просто сопоставить их с Shift+0x10
и Shift+0x11
, в соответствии с this scancode set. Таким образом, он также будет работать для раскладки французской клавиатуры, где переключаются Q и A. И это даже будет работать для раскладок клавиатуры DVORAK или других графических макетов клавиатуры, поскольку раскладка клавиатуры будет просто проигнорирована.
Теперь возникает вопрос: как я могу получить scancode QKeyEvent или любой другой параметр, рассказывающий о позиции физического ключа, игнорируя раскладку клавиатуры, которая будет работать на всех платформах? Я хочу, чтобы он работал на Windows, Linux и OSX.
QKeyEvent::nativeScanCode() получает работу, но она не работает для OSX: \