2016-07-14 12 views
1

ポジションベースのキーボードショートカットを作成するには、すべてのキーボードレイアウトで機能するため、物理的なキーボードキーを特定する必要があります。理想的には、QKeyEventのスキャンコードは、キーボードレイアウトに依存しないため、取得したいと考えています。例えばQKeyEvent(マルチプラットフォーム)のキーポジションを取得

、私はマッピングしたい場合はShift+QからボリュームダウンShift+W私はちょうどShift+0x10にこれらをマッピングすることができ、ボリュームアップ(USキーボードレイアウト上で互いに隣接している二つの鍵)this scancode setによれば、Shift+0x11である。このようにして、QとAが切り替わるフランス語のキーボードレイアウトでも機能します。また、キーボードレイアウトは無視されるだけなので、DVORAKキーボードレイアウトやその他の外来キーボードレイアウトでも機能します。

QKeyEventのスキャンコード、または物理的なキーの位置を示す他のパラメータを取得して、キーボードレイアウトを無視してすべてのプラットフォームで動作する方法を教えてください。 Windows、Linux、OSX上で動作させたい。

QKeyEvent::nativeScanCode()は仕事を取得しますが、それはOSXのために動作しません:

答えて

1

\あなたはすでにそれをやってほとんどのマルチプラットフォームな方法があります。 QtがまだQt 5.7のOS Xでは実装していないことを除けば、

QtのコピーにHIDイベントタップを追加してスキャンコードを取得しても構いません。 this question

関連する問題