我正在使用Qt QML项目。我需要在处理过程中创建一些图像。实际的图像创建和存储应该在后台进行。
为此,我有一个qml模板文件,如下所示
import QtQuick 2.0
Item {
id:area
width:960
height: 960
visible: true
Image {
id: name
source: "file.jpg"
anchors.fill: parent
}
StudentDetails
{
anchors.centerIn: parent
}
}
我想从cpp函数向这个QML文件渲染一些细节。即我想从数据库更新一些学生详细信息并渲染到此qml并存储为图像。 为此,我尝试了以下所有方法。
// Using QQmlComponent
QQmlEngine engine;
QQmlComponent component(&engine,
QUrl::fromLocalFile("MyItem.qml"));
QObject *object = component.create();
object->grabToImage(function(resut){result.saToFile("Stud01.png");}, Qt.size(960, 960));
实际上,这个grabToImage调用在这里不起作用。这只是一个qml模板,我不打算加载这个qml。只需更新一些螺柱细节并存储为图像。我还尝试在qml中调用一个函数,并在qml文件中调用抓取图像调用。
但在这两种情况下它都不起作用。我收到错误,因为它没有附加到窗口,因此Item :: GrabToImage将无法正常工作。
我可以这样做吗?我无法保存QML模板中的图像。有没有其他方法可以将qml保存为图像。