在我的项目中,我正在使用QGraphicsView / QGraphicsScene的东西。
在我的场景中,会有包含 2D 图形的区域。区域数量将受到限制(假设为 20)
用户可以选择显示一个或多个区域。
如果用户选择显示一个区域,我将在场景中显示一个区域
如果用户选择显示 n 个区域,我将在场景中显示 n 个区域,
我需要一个缩放逻辑来适应同一场景中的 n 个区域。
我怎样才能做到这一点?
在我的项目中,我正在使用QGraphicsView / QGraphicsScene的东西。
在我的场景中,会有包含 2D 图形的区域。区域数量将受到限制(假设为 20)
用户可以选择显示一个或多个区域。
如果用户选择显示一个区域,我将在场景中显示一个区域
如果用户选择显示 n 个区域,我将在场景中显示 n 个区域,
我需要一个缩放逻辑来适应同一场景中的 n 个区域。
我怎样才能做到这一点?
QGraphicsView::fitInView()应该做你想做的事:
QRectF bounding;
foreach(QRectF r, selectedRegionRects) {
bounding |= r;
}
scene->fitInView(bounding, Qt::KeepAspectRatio);
我相信你应该使用ensureVisible方法。