qt:graphicsitem graphicsscene graphicsview坐标关系实例

来源:互联网 发布:守望先锋 网络质量 编辑:程序博客网 时间:2024/06/05 16:38

item scene view 坐标映射

理论说明:

经常,处理场景中item时,在场景与item之间,item与item之间,视图与场景之间进行坐标映射,形状映射是非常有用的。举例来讲,当你在QGraphicsView的视口中点击鼠标时,你应该通过调用QGraphicsView::mapToScence()QGraphicsScene::itemAt()来获知光标下是场景中的哪个item。假如你想获知一个item位于视口中的什么位置,你应该先在item上调用QGraphicsItem::mapToScene(),然后调用QGraphicsView::mapFromScene()。最后,假如你想在一个视图椭圆中有哪些items,你应该把QPainterPath传递到mapToScene(),然后再把映射后的路径传递到QGraphicsScene::items()。

实例:

自己将item,scene,view的坐标映射做了个例子,参照来看更好理解:

图1为绿色矩形框在不同坐标系下的坐标


图1. VIEW没有缩放时的坐标值

图2所示为将VIEW进行缩放显示,图像大小适应于窗口大小显示时的坐标值


图2.按窗口大小适配图像显示时的坐标值

从上面两个图很好理解三者之间的坐标关系了。



0 0