Вопрос рендеринга QGraphicsView/QGraphicsScene

Я использую пару QGraphicsScene/QGraphicsView в своем приложении. Я разделил их на подклассы для своей цели. Фрагмент кода, создающий пару, приведен ниже:

itsScene = new QGraphicsScene;
itsView = new QGraphicsView;
itsView->setParent(itsCanvas);

itsView->setGeometry(20,20,1700,720);
itsView->setBackgroundBrush(Qt::black);
itsView->setAlignment(Qt::AlignTop);
itsView->setScene(itsScene);

После добавления некоторых виджетов в QGraphicsScene окончательный снимок пользовательского интерфейса моего приложения выглядит следующим образом: Снимок пользовательского интерфейса приложения Здесь мой вопрос: почему над картинкой есть свободное место? Что может быть причиной этого? Я использую отрицательные координаты для своих виджетов. Это связано с этим?


person onurozcelik    schedule 01.07.2010    source источник


Ответы (1)


Причиной могут быть отрицательные координаты. QGraphicsScene вычисляет свой ограничивающий прямоугольник, объединяя границы всех элементов в нем.

Если вы знаете границы своей сцены, позвоните по телефону setSceneRect, чтобы исправить это до известный прямоугольник. Таким образом, графические элементы, размещенные за границей, не заставят сцену расширяться сверх того, что вы хотите.

person Stephen Chu    schedule 01.07.2010