【问题标题】:Get absolute mouse click location on widget (also when zoomed in) Qt获取小部件上的绝对鼠标单击位置(也放大时)Qt
【发布时间】:2017-08-02 16:11:57
【问题描述】:

我想触发我在 QGraphicsView 上用鼠标单击的位置。 这里的问题:这个 QGraphicsView 总是放大。但我想得到相对于整个小部件的点,而不仅仅是视口。 或者换句话说:当我放大并单击左上角时,位置不应该是 0,0(QMousePressEvent 只是给了我这一点)。应该是从那里到整个sceneRectangle左上角的距离(或者到中间,无所谓)。 有没有办法做到这一点? 感谢您的回答。

【问题讨论】:

  • 您查看过mapToGlobalmapToParent 函数吗?这些对你不起作用吗?如果不;为什么?
  • 不,这些只是给我,我已经拥有的。对不起,这不容易解释......如果我使用这些并单击左上角,我得到的坐标与我缩小一点并再次单击左上角时的坐标相同,这就是问题所在。我想要相对于 sceneRectangle 的坐标(当我缩小时,这些会在左上角发生变化)
  • 还有 mapTomapToScene.. 抱歉,只是在这里猜测 - 不确定我完全明白你想要做什么。
  • 哦,是的! mapToScene 有效! (或: myPoint = this->mapToScene(event->pos()) )它给了我我想要的东西。我从几个小时以来一直在尝试这样做......终于我可以继续了。非常感谢你! PS:如何选择评论作为解决方案?
  • 您不能发表评论,但我会稍后将其作为答案发布。

标签: c++ qt widget qgraphicsview qmouseevent


【解决方案1】:

你可以用 Qt 的mapToScene 函数做你想做的事。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    相关资源
    最近更新 更多