【发布时间】:2017-08-02 16:11:57
【问题描述】:
我想触发我在 QGraphicsView 上用鼠标单击的位置。 这里的问题:这个 QGraphicsView 总是放大。但我想得到相对于整个小部件的点,而不仅仅是视口。 或者换句话说:当我放大并单击左上角时,位置不应该是 0,0(QMousePressEvent 只是给了我这一点)。应该是从那里到整个sceneRectangle左上角的距离(或者到中间,无所谓)。 有没有办法做到这一点? 感谢您的回答。
【问题讨论】:
-
您查看过
mapToGlobal和mapToParent函数吗?这些对你不起作用吗?如果不;为什么? -
不,这些只是给我,我已经拥有的。对不起,这不容易解释......如果我使用这些并单击左上角,我得到的坐标与我缩小一点并再次单击左上角时的坐标相同,这就是问题所在。我想要相对于 sceneRectangle 的坐标(当我缩小时,这些会在左上角发生变化)
-
还有
mapTo和mapToScene.. 抱歉,只是在这里猜测 - 不确定我完全明白你想要做什么。 -
哦,是的! mapToScene 有效! (或: myPoint = this->mapToScene(event->pos()) )它给了我我想要的东西。我从几个小时以来一直在尝试这样做......终于我可以继续了。非常感谢你! PS:如何选择评论作为解决方案?
-
您不能发表评论,但我会稍后将其作为答案发布。
标签: c++ qt widget qgraphicsview qmouseevent