3

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

4

1 回答 1

4

转换后可以要求sceneBoundingRect()或者调用boundingRegion(),使用比boundingRect()精度更高。这个函数在 QGraphicsItem 中。在 QtAssistant 中,您可以阅读更多相关信息:

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

于 2011-10-10T21:52:25.283 回答