Qt - 使用QTransform(或类似),将内部QRect扩展到QGraphics或从QGraphics扩展

时间:2014-05-16 15:19:36

标签: c++ qt qgraphicsview qgraphicsscene qrect

一些背景 -  假设你有QGraphicsScene,并且只有一个视图,这是与场景的1-1比例。  您有一个QRect A,它代表场景的外部视图,具有预定义的像素大小。  你有一个QRect A1,它是A中较小的矩形。

如何将A1转换为场景,以便正确缩放(即如果它是矩形A的1/4,它将占据场景的1/4),然后将该转换撤消到缩放在场景中创建的矩形以正确适合矩形?

我可以做所有这些蛮力,但我想知道是否有使用Qt内置课程的方式...

1 个答案:

答案 0 :(得分:1)

在查看了一些示例以尝试找到类似用途后,我意识到我完全忽略了这一点 - 我可以直接将A / A1设置为场景,并缩放视图(通过完全明显,但不知何故完全被忽视,直到现在QGraphicsView :: fitInView(..))适合里面的rects。不需要矩形变换。总'呃'时刻。 :)

我需要在与它交互时在视图中转换鼠标点击和点,但是有一套很好的mapTo * mapFrom *可以很好地处理它。

TL; DR - 使用fitInView()