qgraphicsview 获取鼠标当前位置
时间: 2023-07-01 15:15:08 浏览: 196
PyQt5追踪鼠标当前位置 移动鼠标和点击鼠标获取坐标
5星 · 资源好评率100%
您可以使用QGraphicsView的mapToScene()函数将鼠标的屏幕坐标转换为场景坐标,然后再使用QGraphicsScene的itemAt()函数获取鼠标下的图形项。以下是示例代码:
```python
from PyQt5.QtWidgets import QGraphicsView, QGraphicsScene
class MyGraphicsView(QGraphicsView):
def __init__(self, parent=None):
super(MyGraphicsView, self).__init__(parent)
self.setScene(QGraphicsScene(self))
self.setMouseTracking(True)
def mouseMoveEvent(self, event):
pos = event.pos()
scene_pos = self.mapToScene(pos)
item = self.scene().itemAt(scene_pos, self.transform())
if item is not None:
print("Mouse is over item:", item)
else:
print("Mouse is over scene at position:", scene_pos)
```
在上述代码中,我们重写了QGraphicsView的mouseMoveEvent()函数来获取鼠标移动事件。我们首先获取鼠标的屏幕坐标,然后使用mapToScene()函数将其转换为场景坐标。然后使用itemAt()函数获取鼠标下的图形项。如果找到了图形项,则打印其信息,否则打印鼠标在场景中的位置。
阅读全文