Я написал функцию, которая обрезает неиспользуемые части сцены
void Scene::adjustSceneRect()
{
QList <QGraphicsItem *> list = items();
if (list.count() < 2)
return;
qreal left = list[0]->scenePos().x(),
top = list[0]->scenePos().y(),
right = list[0]->scenePos().x(),
bottom = list[0]->scenePos().y();
for (int i = 1; i < list.count(); i++)
{
if (list[i]->scenePos().x() < left)
left = list[i]->scenePos().x();
if (list[i]->scenePos().y() < top)
top = list[i]->scenePos().y();
if (list[i]->scenePos().x() > right)
right = list[i]->scenePos().x();
if (list[i]->scenePos().y() > bottom)
bottom = list[i]->scenePos().y();
}
setSceneRect(left - 80,top - 80,abs(right)+abs(left)+160,abs(top)+abs(bottom)+160);
}
Но отображение в View постоянно берет за точку отсчета точку - (0,0) (как собственно и написанно в доке), и соответствено, не смотря на обрезку показывает пустую область. Сдвигать объекты на сцене я категорически против, если способ перенести начало координат View в другое место, или какое-нибудь другое решение, спасибо.