我在 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); 安装在构造函数中;