如何在转换后找到QGraphicsItem的大小

时间:2011-05-02 08:23:59

标签: qt pyqt qgraphicsitem

我正在我的pyqt代码的某些部分缩放QGraphicsItem。在我调用self.rect.adjusted(0,0,0,0)的代码的另一部分中,它返回转换前的维度。我的问题是如何在转型后找到尺寸?

1 个答案:

答案 0 :(得分:3)

转换后可以请求sceneBoundingRect()或调用boundingRegion(),用于比boundingRect()更高的精度。所有这些功能都在QGraphicsItem中。在QtAssistant中,您可以阅读更多相关内容:

边界区域描述了项目视觉内容的粗略轮廓。虽然计算起来很昂贵,但它也比boundingRect()更精确,并且它可以帮助避免在项目更新时进行不必要的重新绘制。这对于薄物品(例如,线条或简单多边形)特别有效。您可以通过调用setBoundingRegionGranularity()来调整边界区域的粒度。默认粒度为0;其中项的边界区域与其边界rect相同。 itemToDeviceTransform是从项坐标到设备坐标的转换。如果希望此函数在场景坐标中返回QRegion,则可以将sceneTransform()作为参数传递。