Qt 未在QQuickWindow中捕获画布图像

Qt 未在QQuickWindow中捕获画布图像,qt,canvas,qml,qtquick2,Qt,Canvas,Qml,Qtquick2,我需要从QML中捕获一个包含Canvas元素的图像。尽管Canvases显示良好,但它们没有正确地保存在图片快照中 我使用了链接解决方案中描述的qquickwindowgrabwindow方法,图像保存在afterRenderingsignal调用的UI线程中(我也尝试了frameSwappedsignal)。结果是保存所有QML对象,但不保存Canvas对象 Canvases的renderStrategy和renderTarget都设置为默认值。它们是简单的Canvases,如下所示: Can

我需要从QML中捕获一个包含
Canvas
元素的图像。尽管
Canvas
es显示良好,但它们没有正确地保存在图片快照中

我使用了链接解决方案中描述的
qquickwindowgrabwindow
方法,图像保存在
afterRendering
signal调用的UI线程中(我也尝试了
frameSwapped
signal)。结果是保存所有QML对象,但不保存
Canvas
对象

Canvas
es的
renderStrategy
renderTarget
都设置为默认值。它们是简单的
Canvas
es,如下所示:

Canvas {
    id:canvas

    onPaint:{
        var ctx = canvas.getContext('2d');
        ctx.beginPath();
        ctx.moveTo(20, 0);
        ctx.bezierCurveTo(-10, 90, 210, 90, 180, 0);
        ctx.stroke();
        //...
    }
}
我注意到,
afterRendering
信号被多次调用


任何建议都非常感谢!:)

在黑暗中刺伤这里。。。你尝试过不同的和/或吗?我尝试过renderStrategy的线程化策略,但没有结果,但是文档说:“Canvas.Immediate-context将在主UI线程中立即执行图形命令。”所以我认为应该是立即的。我可以试试另一个渲染目标。在黑暗中刺穿这里。。。你尝试过不同的和/或吗?我尝试过renderStrategy的线程化策略,但没有结果,但是文档说:“Canvas.Immediate-context将在主UI线程中立即执行图形命令。”所以我认为应该是立即的。我可以尝试其他渲染目标。