簡體   English   中英

QT eventFilter mouseEvent->pos().x() 始終為零但 mouseEvent->pos().y() 工作正常

[英]QT eventFilter mouseEvent->pos().x() always zero but mouseEvent->pos().y() working fine

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()));
       }

       return false;
}

你有未定義的行為。 如果event->type()QEvent::GraphicsSceneMouseMove那么真正的事件類型是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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM