0

私のプログラムは Qt で動作していますが、問題があり、ウェブサイトに無料の回答があります。当社の製品は、ユーザーがマウスを動かしながら画像を更新する必要がありますが、画像の更新には非常に時間がかかります。ユーザーがマウスをすばやく動かすと、システムは大量のマウス移動イベントを生成し、最終的にバックグラウンド プロセスの詰まりにつながります。したがって、イベントの一部を除外する必要があります。QApplication にイベント フィルターを挿入して、マウス移動イベントをフィルター処理します。

qApp->insertEventFilter(this)

マウス イベントをキャッチしたら、QMouseEvent と QObject のポインタ、およびアクティブな QTimer を保存します。他の mouseMouseEvent は、タイムアウト前にそれらを上書きできます。タイムアウト後、最後のイベントが投稿されます。私は使用できません:

QApplication::sendEvent(XX) or postEvent(xx)

それは私のイベントフィルターによって再びキャッチされるからです。どうすればそれを機能させることができますか?

4

1 に答える 1

0

イベントをフィルタリングしないでください。その代わりに、データの生成を担当するバックグラウンド ワーカーを変更して、不要なものに時間を費やさないようにします。

于 2013-04-11T12:42:57.463 に答える