QtQuick:绘制一条线 - 将QQuickItem与Canvas或QQuickPaintedItem混合

时间:2018-03-06 07:20:29

标签: qt qtquick2

我创建了一个可以显示线图的QQuickItem。这是使用QSGNodes完成的,因此应该通过OpenGL进行硬件加速(因为我需要绘制许多点)。现在我想为这个图添加一个轴,为此我需要为Axis,Ticks绘制一些线(并且可能包括轴上箭头的svg)并且有一些文本标签。

如果我将此轴实现为QQuickPaintedItem或使用Canvas,是否会影响性能?我并不担心绘制轴的性能,但是如果在同一个地方有一个QQuickPaintedItem,我的线图QQuickItem是否仍然使用OpenGL?

1 个答案:

答案 0 :(得分:0)

请注意,SVG文件被栅格化并绘制为光栅位图,它们不是使用几何体绘制的,因此拥有SVG除了GPU在磁盘上占用的空间外,实际上不会为您节省太多渲染方面,它只是一个位图。如果您想使用几何图形绘制它,请再次转到QQuickItemQSGNodes组合。

QQuickPaintedItemCanvas - 两者都以相同的方式工作,只有Canvas的绘图是从JS完成的,所以它会慢一点。但是,这可能不是问题,因为您通常不必重绘图表轴。

当然,每个元素都将使用各自的后端进行渲染,无需担心。