Как увеличить всю сцену QML2 в QQuickView?

У меня есть документ QML2, который значительно больше, чем дисплей, на котором он отображается с QQuickView.
В QML1 и QtDeclarative можно было использовать QGraphicsView::fitInView масштабировать всю сцену (включая правильное отображение MouseEvent и т. д.).

Есть ли что-то похожее для QML2, которого я еще не нашел?

0

Решение

Я придумал решение, которое как-то ведет себя как QGraphicsView::fitInView(aRect, Qt::KeepAspectRatio),

void MyQuickView::fitInView(const QRectF & newRect)
{
QSizeF newSize = newRect.size();
qreal horizontalScale = size().width() / newSize.width();
qreal verticalScale = size().height() / newSize.height();

// You might want to use another origin
rootObject()->setTransformOrigin(QQuickItem::TopLeft);

rootObject()->setSize(newSize);
rootObject()->setScale(qMin(horizontalScale, verticalScale));
}

Это в основном работает, хотя я не полностью протестировал весь свой старый код Qt4.8.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]