Qt 未在QQuickWindow中捕获画布图像
我需要从QML中捕获一个包含Qt 未在QQuickWindow中捕获画布图像,qt,canvas,qml,qtquick2,Qt,Canvas,Qml,Qtquick2,我需要从QML中捕获一个包含Canvas元素的图像。尽管Canvases显示良好,但它们没有正确地保存在图片快照中 我使用了链接解决方案中描述的qquickwindowgrabwindow方法,图像保存在afterRenderingsignal调用的UI线程中(我也尝试了frameSwappedsignal)。结果是保存所有QML对象,但不保存Canvas对象 Canvases的renderStrategy和renderTarget都设置为默认值。它们是简单的Canvases,如下所示: Can
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线程中立即执行图形命令。”所以我认为应该是立即的。我可以尝试其他渲染目标。