1

Qt(およびstackoverflowも)にはまだ比較的新しいですが、過去数週間にわたって、古い廃止された新しいGUIコードをQtに置き換え、途中でいくつかの点を改善することに成功しました。しかし今、私は問題に直面しています。これまでのところ、グーグルで抜け出すことができませんでした。

いくつかの背景:

アプリケーションには、Qtの外部で作成されるopenglメインウィンドウがあり(このアプリケーションのほとんどは完全にQtの外部にあります)、Qtウィンドウは(開発)サブ機能にのみ使用され、GUIのみに使用されます。

フレームごとにメインループからprocessEvents()を呼び出しています。

両方のプラットフォームでローカルに構築されたQt4.7.4を使用します。

Linuxではすべて正常に動作します。Qtウィンドウは適切に動作し、メインのopenglウィンドウでマウスとキーボードを使用してアプリケーション/シミュレーションを常に可能であるように操作できます。

ただし、同じ変更を適用してQtをウィンドウに組み込むと、メインウィンドウでマウスが機能しなくなりました。キーボードは機能しますが、マウスコードがWM_INPUTイベントを取得することはないようです。processEvents()の呼び出しを無効にすると、マウスは再び正常に動作します。(しかし、明らかにQtウィンドウは正しく機能しません)

Qtは、メインウィンドウを対象としたマウスイベントをキャッチし、メインウィンドウに配信するのではなく、それらを破棄/忘れているようです。

残念ながら、これが一般的な出来事であることを示すものは何も見つかりませんでした(一般的な単純な解決策で)。

http://qt-project.org/forums/viewthread/502がマウスイベントの問題を参照していることを発見しましたが、_WIN32_WINNT=0×501を定義してQtをコンパイルするという解決策は何の違いもありません。

どんな洞察も大歓迎です!

4

0 に答える 0