背景: 私は現在、Windows で使用する QWidget に埋め込まれた単純な VNC ビューアーを作成中です。このために、KRDC (KDE のリモート デスクトップ ビューアー) の Qt 専用 VNC バージョンと、その依存関係である Windows 上の libvncclient をコンパイルしました。ただし、現在発生している問題は、krdc が vnc を介してキー イベントを送信する方法にあります。これは単に QKeyEvent::nativeVirtualKey() の値を送信するだけで、X11 では都合よく既に有効な RFB キーシムになっています。ただし、Windows では、これは当てはまりません。
さて、この問題を解決するには、Qt の QKeyEvent::key() および ::modifier() データを有効な X11/RFB キーシムに変換するのが最善の (そして最終的に移植可能な) 方法だと思います。修飾子の状態 (XK_a と XK_A、これまでシフトのみを考慮してきました) に応じて異なるキーシムを選択する必要があることを考えると、これはやや複雑に思えます。X11 -> Qt の変換が Qt のソース コードでどのように行われるかを調べても、あまり役に立ちませんでした。
これを実現するライブラリまたはコード スニペットが既に存在する可能性はありますか? それとも、独自の (不完全な) 翻訳ルーチンを作成する必要がありますか? もしそうなら、これを行う最善の方法は何ですか?また、X11に関連して知っておくべき他の注意事項はありますか?