Qt5.0 に、次のような単一のマウス クリックをリッスンするイベント フィルターをインストールしたアプリケーションがあります。
bool MainView::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::MouseButtonPress)
{
QMouseEvent *mouseEvent = static_cast<QMouseEvent*>(event);
int mx=mouseEvent->pos().x(),my=mouseEvent->pos().y();
qDebug() << QString::number(mx)<<" "<<QString::number(my);
...
}
}
クリックするたびに、関数が複数回呼び出され、多くの場合、実際の値から約 +/-50 の範囲の広い範囲の値が返されます。なぜこれが起こっているのか、または誰かが同様の問題に直面したことがあるかどうかについて、誰か説明してください。イベント フィルターは、qApp->installEventFilter(this); としてコンストラクターにインストールされています。