キーボード操作実装の準備をしましょう…
Brynhildrの作者さんから操作系通信のサンプルソースを頂いたので、ぼちぼちとまずキーボード操作の実装を始めました。
最終的には、iOS, Android, Surface Proなどタッチパネル系のデバイスも対応したいのですが、まずはWindows/Linuxなどのキーボード/マウスデバイスへの対応を進めます。確認が容易なので…(*^-^)
通信内容の概要としては、Windowsの仮想キーコード(実際はマウスも含まれたりしてますが…)を送ればよいようです。Windowのメッセージ通信をトラップして、内容をバッファリングして、適宜送り出すようですね。
QtではWindowsの仮想キーコードに依存しないデータ構造を使っているので、うまく変換してやる必要があります。Qt AssistantでKey_Upとかで検索するとQtというヘッダでキーボード関係のデータ構造が定義されていますね。
ただ、予想通りWindowsの仮想キーコードとQtのイベントで渡されるデータとは一対一対応しないようです。
例えば、ダブルクォート(")はQtではSHIFTキーのデータの後ダブルクォート(")の情報が送られてきますが、WindowsではSHIFTキーのデータの後2キー(日本語キーボードの場合)のデータが送られてきます。Qtでは入力された文字の情報そのものが来ますが、Windowsでは実際の操作が送られてくるので、受け取ってから、それを解釈する必要があるということです。
このため、Qtから受け取ったデータを1つ以上のWindows仮想キーコードに変換してやる必要があります。日本語キーボードだけなら、やっつけコーディングでもいいのですが他の言語用キーボードも考慮する必要があるので、少しデータ構造を検討する必要がありそうです。今日はとりあえずここまでにしておきます。
P.S.
Nexus 7 (2013:Wi-Fi Only Model) を購入しましたが、中々楽しいですね…
KitKat(4.4.2)にバージョンアップしてしまいましたが、大丈夫かな…
« 多言語対応のその後 | トップページ | ノイズが出るのは… »
コメント