pyqt6 鼠标再QgraphicsView内时显示坐标
时间: 2024-09-24 10:04:44 浏览: 55
在PyQt6中,要在`QGraphicsView`内显示鼠标位置的坐标,你可以通过监听鼠标的移动事件并获取其位置信息来实现。首先,你需要创建一个`QGraphicsScene`,然后将它添加到`QGraphicsView`中。接着,可以在`QGraphicsView`上设置一个自定义的鼠标按下、移动和释放事件处理器。下面是一个简单的示例:
```python
import sys
from PyQt6.QtCore import Qt, QPointF, QRectF
from PyQt6.QtGui import QPainter, QPen, QColor
from PyQt6.QtWidgets import QApplication, QGraphicsView, QGraphicsScene, QGraphicsItem
class CustomMousePosition(QGraphicsItem):
def __init__(self, parent=None):
super().__init__(parent)
self.pen = QPen(QColor("red"), 2)
self.setAcceptedMouseButtons(Qt.LeftButton)
def paint(self, painter: QPainter, option: "QStyleOptionGraphicsItem", widget: "QWidget" = None) -> None:
painter.drawPoint(painter.mapFromGlobal(QCursor.pos()))
def mouseMoveEvent(self, event: "QGraphicsSceneMouseEvent") -> None:
pos = self.mapToParent(event.pos())
print(f"鼠标位置 ({pos.x()}, {pos.y()})")
# 创建窗口和场景
app = QApplication(sys.argv)
scene = QGraphicsScene()
view = QGraphicsView(scene)
# 添加自定义鼠标位置图形到场景
mouse_pos_item = CustomMousePosition()
scene.addItem(mouse_pos_item)
# 设置视图的大小
view.resize(400, 400)
# 显示视图
view.show()
# 运行应用程序
sys.exit(app.exec())
```
在这个例子中,当你在`QGraphicsView`内移动鼠标时,控制台会打印出当前鼠标的位置坐标。
阅读全文