0

我有一个带有图像和自定义光标的 QGraphicsView。光标由两条 QPen-DotLine 组成。一条 x 轴点线和一条 y 轴点线。两条线的交叉点是鼠标光标的位置。问题是,当我放大时,十字不在鼠标光标位置下方。例如,当鼠标光标的值为 x = 1.4235 和 y = 2.7732 时,点线设置在 x = 1 和 y = 2 的位置。但我希望点线位于浮动位置(x = 1.4235答案 y = 2.7732)。我怎样才能做到这一点。

我得到的鼠标位置

def mouseMoveEvent(self,event):
    ...
    ... self.grview.mapToScene(event.pos())
    ...

以及我用 setPos() 设置的点线。我认为 setPos() 将 float 转换为 int。但我不知道如何解决。希望你们中的某个人有一个有用的想法。

4

1 回答 1

0

我发现了问题。之前实现了一些代码的人使用了“drawEllipse (int x, int y, int width, int height)”,这会将float转换为int。所以我唯一要做的就是用“drawEllipse (const QPointF & center, qreal rx, qreal ry)”替换它。很抱歉给您带来麻烦,谢谢。

于 2010-09-30T22:47:29.070 回答