Общие советы по масштабированию в QGraphicsView/QGraphicsScene

В моем проекте я использую материал QGraphicsView/ QGraphicsScene.

На моей сцене будут регионы с 2D графикой. Количество регионов будет ограничено (скажем, 20)
Пользователи могут выбрать отображение одного или нескольких регионов.
Если пользователь решит отобразить один регион, я собираюсь показать один регион на сцене
Если пользователь выберет для отображения n регионов, я собираюсь показать n регионов на сцене
Мне нужна логика масштабирования, чтобы разместить n областей на одной сцене.

Как мне этого добиться?

2 ответа

Решение

QGraphicsView::fitInView() должен делать то, что вы хотите:

QRectF bounding;
foreach(QRectF r, selectedRegionRects) {
    bounding |= r;
}
scene->fitInView(bounding, Qt::KeepAspectRatio);

Я считаю, что вы должны использовать метод sureVisible.

Другие вопросы по тегам