Mar*_*ark 4 qt pyqt qgraphicsitem
我正在 pyqt 代码的某些部分缩放 QGraphicsItem。在我的代码的另一部分中,当我调用 self.rect.adjusted(0, 0, 0, 0) 时,它返回转换前的尺寸。我的问题是如何找到变换后的尺寸?
变换后可以请求sceneBoundingRect()或调用boundingRegion(),它用于比boundingRect()更高的精度。这个函数在QGraphicsItem中。在 QtAssistant 中,您可以阅读更多相关内容:
边界区域描述了项目视觉内容的粗略轮廓。尽管计算成本较高,但它也比boundingRect()更精确,并且有助于避免更新项目时不必要的重新绘制。这对于薄的项目(例如,线或简单的多边形)特别有效。您可以通过调用 setBoundingRegionGranularity() 来调整边界区域的粒度。默认粒度为0;其中项目的边界区域与其边界矩形相同。itemToDeviceTransform 是从项目坐标到设备坐标的转换。如果您希望此函数返回场景坐标中的 QRegion,可以将 sceneTransform() 作为参数传递。