首页 > 解决方案 > 关于 QQuickPaintedItem 的性能和缩放

问题描述

我的应用程序中有一个自定义QQuickPaintedItem项,现在我想知道如何正确缩放我创建的项目。在“Qt Widgets 世界”中,曾经有过QGraphicsView,它的表现非常好,但似乎QQuickPaintedItem无法与它的表现相提并论。我知道您可以QQuickItem直接子类化,然后使用 QML 场景图,我可以使用 OpenGL(我一点也不熟悉)来渲染项目,但这对我来说不是一个选项。我想调查的是是否可以有效地缩放 QQuickPaintedItem,特别是一旦我绘制了该项目,那么我可以使用scaleQML 中的属性,但是这会缩放整个项目(因此使其变得模糊),而不是我想缩放项目的内容,但我怎样才能有效地做到这一点?在 Qt Creator 中提供的示例中,有一个SvgViewer,它显示了如何QGraphicsView使用 a 来显示 SVG 图像并“完美地”缩放它。这种行为可以在 QML 中获得吗?

编辑:性能问题的根源是QQuickPaintedItem不使用 QSG,因此它必须光栅化然后绘制项目。这导致在缩放时,必须在缩放时重新绘制项目。可以想象,每隔几毫秒重绘所有内容可能会非常昂贵

标签: c++qtqml

解决方案


推荐阅读