« Qt5.3に付属のMinGW-4.8.2は32bitコンパイラでした… | トップページ | キーボードコントロールを実装しました その2 »

2014年10月27日 (月)

マウスコントロールを実装しました その2

マウスカーソルの動きがダメな件ですが、そもそもマウスイベントをすべてバッファリングすること自体が問題でした。後から考えるとすでにサンプルソースにその解はあったのでした…

つまり、マウスのボタンとホイール操作はバッファリングしますが、マウスの位置情報は最新のみを保持しているということです。サーバに送る情報としてボタンを押したとかホイールを回転させたという情報は落とすことはできないのですが、マウスの位置情報はその軌跡が必要なのではなく、現在の位置情報だけが重要ということですね。

これまでマウスイベントをすべてバッファリングしていたため、細かいマウスカーソルの移動軌跡を逃さず保存して、それを順番に送っていたのです。マウスの移動イベントはかなり細かく発生するため、不必要に細かい移動軌跡を辿らせていたようです。

マウスの移動イベントのみを特別扱いし、最新の位置情報のみを保持するように変更しました。

やっとマウスが普通に使えるようになりました。

ローカルのマウスカーソルが同時に表示されてしまうのは、とりあえずQtのQApplicationクラスのメソッドで
クロスカーソルに変更して様子を見ます。

QApplication app(argc, argv);

// set cursor
app.setOverrideCursor(Qt::CrossCursor);

« Qt5.3に付属のMinGW-4.8.2は32bitコンパイラでした… | トップページ | キーボードコントロールを実装しました その2 »

コメント

コメントを書く

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

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

トラックバック


この記事へのトラックバック一覧です: マウスコントロールを実装しました その2:

« Qt5.3に付属のMinGW-4.8.2は32bitコンパイラでした… | トップページ | キーボードコントロールを実装しました その2 »