Как обращаться с нелатинскими клавишами, нажатыми с помощью Qt?
Например, для нажатой клавиши «W» QKeyEvent :: key () возвращает 87, а для «Ц» — ту же клавишу в русской раскладке — 1062.
Поэтому я не могу использовать константы, такие как Qt :: Key_W, для проверки, какая клавиша была нажата: они не будут работать, если пользователь переключит раскладку.
Спасибо
Значение ключа зависит от выбранного в данный момент макета. То, что вы наблюдаете, правильно. Если вы нажмете эту клавишу в любом другом приложении, вы получите не W, а Ц (С).
Данный ключ означает Qt::Key_W
только если это в макете, который производит римские W
,
Если вы собираетесь ссылаться на физические ключи, вы можете попробовать использовать QKeyEvent::nativeScanCode()
и / или QKeyEvent::nativeVirtualKey()
, Эти значения, конечно, зависят от платформы.