qt 如何将 屏幕坐标转化为 场景坐标
时间: 2023-10-14 07:04:25 浏览: 199
qt绘制时间轴,自由设置时间刻度
在 Qt 中,可以使用 QGraphicsView 类来显示场景并进行坐标转换。要将屏幕坐标转换为场景坐标,可以使用 QGraphicsView 的 mapToScene() 函数。
具体的步骤如下:
1. 获取 QGraphicsView 的指针。
2. 使用 QGraphicsView 的 mapToScene() 函数将屏幕坐标转换为视图坐标。
3. 使用 QGraphicsView 的 mapToScene() 函数将视图坐标转换为场景坐标。
以下是一个示例代码:
```cpp
// 获取 QGraphicsView 的指针
QGraphicsView* view = this->ui->graphicsView;
// 获取屏幕坐标
QPoint screenPos = QCursor::pos();
// 将屏幕坐标转换为视图坐标
QPointF viewPos = view->mapFromGlobal(screenPos);
// 将视图坐标转换为场景坐标
QPointF scenePos = view->mapToScene(viewPos);
// 输出场景坐标
qDebug() << "Scene Pos: " << scenePos;
```
注意:在使用 mapToScene() 函数之前,必须确保 QGraphicsView 已经设置了正确的场景。
阅读全文