如何在QQuickView中缩放整个QML2场景



我有一个QML2文档,它比QQuickView显示的显示器大得多。在QML1和QtDeclarative中,可以使用QGraphicsView::fitInView来缩放整个场景(包括正确的MouseEvent映射等)。

是否有类似的东西QML2我只是没有找到吗?

我想出了一个解决方案,在某种程度上表现得像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代码。

相关内容

  • 没有找到相关文章

最新更新