Hello all! Is there any way to know when QML data was loaded into engine? In my QML app I want to make a screenshot after all the source was loaded.
QQmlApplicationEngine engine; engine.loadData(data); QQuickWindow *rootObject = qobject_cast<QQuickWindow *>(p_engine.rootObjects().first()); QImage image = rootObject->grabWindow(); image.save("window.png","PNG",90); where data is simple QML file: import QtQuick 2.3 import QtQuick.Window 2.2 Window { visible: true width: 360 height: 360 Text { anchors.centerIn: parent text: "Hello, world!" } MouseArea { anchors.fill: parent //onClicked: someSingleton.makeScreenshot(); } } But image not saved just because it is empty. If I call QQuickWindow::grabWindow() from QML, for example, after clicking at MouseArea it works well. So from this I conclude that when I call rootObject->grabWindow()it still not loaded completly yet.I've tried to call this function in this way: connect(rootObject,&QQuickWindow::afterRendering,[=] () { QImage image = rootObject->grabWindow(); image.save("window.png","PNG",90); }); But the program just hungs up in this slot and no image was saved.
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest