« 暗号化についても考えてみる その3 | トップページ | 暗号化についても考えてみる その4 »

2014年5月30日 (金)

キー入力とマウス

#また横道に逸れますが…

Brynhildrサーバに、デバイスの入力(PCだと主にキーボード、マウスですね)を連絡する必要がありますが、その通信内容、手順の詳細は問い合わせ中なので、そこで必要になるであろう情報について考えました。

キーボードだと、どのキーを押したかですね。これは遥か昔に書いたのですけど、イベントという形で伝わります。

Keyを押した時: void keyPressEvent(QKeyEvent *event)

Keyを離した時: void keyReleaseEvent(QKeyEvent *event)

がそれぞれ呼ばれます。引数eventに押されたキーなどの情報が入っていますので、これから情報を取得することになります。Qt AssistantでQKeyEventを検索してみます。

QKeyEvent::key()というメンバ関数でどのキーか分かるようです。返ってくる値はQt::Key_????というような値だそうです。例えば、右カーソルキーなら、Qt::Key_Right, '+'ならQt::Key_Plusです。Qt AssistantのQKeyEventのメンバ関数key()の記述の近くにあるQt::Keyというリンクをクリックすると一覧が見られます。enum Qt::Keyと定義されているようです。例えば、こんな感じです。プログラム中では、Qt::Key_????を使うことになります。

	 
Qt::Key_SysReq	0x0100000a	 
Qt::Key_Clear	0x0100000b	 
Qt::Key_Home	0x01000010	 
Qt::Key_End	0x01000011	 
Qt::Key_Left	0x01000012	 
Qt::Key_Up	0x01000013	 
Qt::Key_Right	0x01000014	 
Qt::Key_Down	0x01000015	 

Qt NamespaceでAt Assinstantを検索すると、すべてのQtの名前空間での定数値を調べられます。
これらのキー情報を、Brynhildrサーバさんが解釈できる情報に変換してあげる必要があります、たぶん。
Brynhildrサーバさんは、Qtのキー情報を知っているはずがないのでこの値を送っても、知らないよって言われます(^_^;

次は、マウスの情報です。マウスの情報といえば、とりあえず思いつくところでは、ウィンドウ内の位置(x,y)、押されたボタン(右、左)、離されたボタン(右、左)、くらいしか思いつかないのですが、早速Qt Assistantで調べてみます。

なんか、こんな感じの関数が呼ばれるようです。

マウスボタンを押した時 void mousePressEvent(QMouseEvent *event)

マウスボタンを離した時 void mouseReleaseEvent(QMouseEvent *event)

マウスを動かした時 void mouseMoveEvent(QMouseEvent *event)

他にあります。

基本的にはQMouseEventというものとして、情報が渡されるようです。# QWheelEventというものもあるそうですが。
検索して、メンバー関数をさらっと眺めるといろいろと情報が渡ってくるのが分かります。

ウィンドウ内の位置(x,y)、デスクトップ内の位置(x,y)、どのボタン、といった情報のようです。

恐らくBrynhildrサーバさんから送られてきたデスクトップのJPEG画像の中で、今どのウィンドウにフォーカスがあるのか、とかを判断しなくてはならないので、JPEGで表示したデスクトップ画像のウィンドウ内のマウスカーソルの位置とかが必要になってくるのかもしれません。まだ、憶測の域を超えませんが、なんとなく必要な情報は渡せそうな気がしてきました。

QKeyEvent, QMouseEvent, QWheelEventを必要になったら調べることになりそうです。とりあえず、目処は付いた気になったので、この辺りで元に戻ろうかと…思います。

« 暗号化についても考えてみる その3 | トップページ | 暗号化についても考えてみる その4 »

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: キー入力とマウス:

« 暗号化についても考えてみる その3 | トップページ | 暗号化についても考えてみる その4 »