如何获得Qt鼠标位置

时间:2017-03-15 23:47:08

标签: c++ qt

所以我一直在努力解决这个问题。我尝试过很多东西,但似乎都没有。 所以,我想在Qt中制作游戏,我需要的一件事就是播放器(现在的QRectItem)总是旋转到鼠标位置。我只需要一直读取该位置的读数,所以不是当我点击或拖动时,所有时间。 我怎样才能做到这一点? 我设置了

void Game::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
    qDebug() << QCursor::pos();
}

在继承QGraphicsView类的类上,我也专注于它。 不知道问题是否是覆盖功能(不知道要覆盖哪一个)或焦点。

{{1}}

这样做但它根本不起作用。 顺便说一句,我是菜鸟Qt,这是我的第一个项目。 提前致谢! :)

P.S。 我已经做了很多研究,但是如果我以某种方式错过了可以解决这个问题的相同或类似问题的主题,那就粘贴它并接受我的道歉。 :)

EDITED

1 个答案:

答案 0 :(得分:0)

您可以在QApplication对象上安装事件过滤器,检查收到的鼠标移动事件事件,将生成的位置转换为场景,然后使用它来定向矩形。

看看QObject::installEventFilter。事件过滤器非常易于使用。当对象接收到鼠标事件时,其坐标位于该对象的坐标空间中,因此您需要将其转换为图形场景坐标。可能会有多次转换,因为您需要使用mapTo将收到的位置映射到QGraphicsView,然后使用QGraphicsView::mapToScene将结果映射到您的场景。

这应该让你非常接近。如果您需要更多帮助,请告诉我。