mouseEvent->pos((.x((始终返回 0. mouseEvent->pos((.y(( 鼠标移动时更新
bool Module3::eventFilter(QObject *obj, QEvent *event( { QMouseEvent *mouseEvent = static_cast(event(; if(obj ==scene && event->type(( == QEvent::GraphicsSceneMouseMove({ QToolTip::showText(mouseEvent->pos((,QString::number(mouseEvent->pos((.x((( + ", " + QString::number( mouseEvent->pos((.y((((; } 返回假; }
你有未定义的行为。 如果QEvent::GraphicsSceneMouseMove
event->type()
则事件的真实类型QGraphicsSceneMouseEvent*
而不是QMouseEvent*
。
尝试。。。
if (obj == scene && event->type() == QEvent::GraphicsSceneMouseMove) {
if (auto *mouseEvent = dynamic_cast<QGraphicsSceneMouseEvent *>(event)) {
QToolTip::showText(mouseEvent->scenePos().toPoint(),QString::number(mouseEvent->pos().x()) +
", " + QString::number( mouseEvent->pos().y()));
}
}
return false;