【发布时间】:2017-05-22 18:47:38
【问题描述】:
是否有任何可能的方法使grabToImage() 缓冲区与 GUI 中显示的缓冲区不同?我在 GUI 中使用ChartView 没有图例,并希望将其导出到带有图例的PNG。所以我尝试:
chartView.legend.visible = true
chartView.update()
chartView.grabToImage(function(result) {
console.log("grabbed")
var path = filename.toString().replace(/^(file:\/{2})/,"");
console.log(path + result.saveToFile(path));
chartView.legend.visible = false
update();
});
但这两个更新仅在控件退出此功能后才会发生,所以我没有在 PNG 中绘制图例。我也希望图例的出现对用户来说是不明显的。 QML 有什么方法可以做到这一点吗?
【问题讨论】:
-
您可以尝试创建第二个不可见的 ChartView 并使用 Timer 让 Qt 有时间处理所有内容,然后再将其保存为 PNG。
-
@m7913d ,这不是太直接的方式,但我会尝试 =)