一旦开启这个self.graphics_view.enableMouse(),就一直报 File "/home/rvbust/.local/lib/python3.10/site-packages/pyqtgraph/widgets/GraphicsView.py", line 360, in mouseMoveEvent self.sigSceneMouseMoved.emit(self.mapToScene(lpos)) TypeError: arguments did not match any overloaded call: mapToScene(self, point: QPoint): argument 1 has unexpected type 'QPointF' mapToScene(self, rect: QRect): argument 1 has unexpected type 'QPointF' mapToScene(self, polygon: QPolygon): argument 1 has unexpected type 'QPointF' mapToScene(self, path: QPainterPath): argument 1 has unexpected type 'QPointF' mapToScene(self, ax: int, ay: int): argument 1 has unexpected type 'QPointF' mapToScene(self, ax: int, ay: int, w: int, h: int): argument 1 has unexpected type 'QPointF'
时间: 2024-04-03 16:32:47 浏览: 107
这个错误提示是因为 `mapToScene()` 方法需要传入一个 `QPoint` 对象作为参数,但是传入的是 `QPointF` 对象。
解决这个问题的方法是将传入的参数类型转换为 `QPoint` 对象,可以使用 `QPoint()` 函数或 `QPoint.fromPoint()` 方法将 `QPointF` 转换为 `QPoint`,然后再传入 `mapToScene()` 方法中。
例如,假设你想将 `pos` 变量从 `QPointF` 转换为 `QPoint`,可以使用以下代码:
```
lpos = self.graphics_view.mapFromGlobal(QtGui.QCursor.pos())
point = QtGui.QPoint.fromPoint(lpos)
self.view.mouseMoved.emit(point)
```
在这个代码中,`lpos` 变量表示鼠标位置,使用 `mapFromGlobal()` 方法将其转换为 `graphics_view` 中的坐标,并将其转换为 `QPoint` 对象。然后,使用 `mouseMoved.emit()` 发送鼠标移动事件,将 `point` 对象作为参数传递给该事件。
阅读全文