Qt 4.8 Qtransform用于旋转qgraphicsitem

时间:2014-01-01 06:09:27

标签: c++ qt rotation

我使用QTransform::translate(x, y).rotate(angle).translate(-x, -y)旋转了qgraphicsitem(比如矩形)。

在应用旋转之前,boundingrect()会给出正确的项目边界矩形。

使用QTransform应用轮换后,在调用boundingrect()sceneboundingrect()时会显示上一个边界矩形。即没有旋转的矩形。

我尝试使用boundingRegion等仍未在旋转后给出正确的边界矩形。增量旋转提供先前的边界矩形而不是当前的边界矩形。

另外,如何检查该项目(特别是当QTransform应用时,即旋转,缩放等)不在场景矩形内?

先谢谢, 此致

1 个答案:

答案 0 :(得分:0)

请注意,您不希望更改boundingrect(),因为它始终以Item Coordinates表示。

我有一个想法,你可能需要在某些时候调用prepareGeometryChange()来正确更新这种东西(例如,对于sceneTransform和sceneBoundingRect来返回正确的值)。