QQuickWidget grab image

Ich speichere ein Bild von einemQQuickWidget mit mehreren QML-Kindern, aber alles, was ich habe, ist ein leeres Bild.

C ++ Seite:

QQuickWidget* content..
content->setSource(QUrl("qml:/main.qml"));
QPixmap *pm = content->grab(QRect(QPoint(0,0),QSize(-1,-1));
pm->save("someFilename.png", 0, 100);

QML Seite:

Rectangle{  width: 5; height: 5; color: "yellow"; objectname: "rootobj"}

In der QML möchte ich dynamisch Kinder hinzufügen und sie im Bild anzeigen können. Ich habe versuchtQQuickWindow grabWindow Methode mit einer Verbindung zu einem Steckplatz und es funktioniert, aber es erfasst nur den sichtbaren Bereich des Fensters und ich muss die gesamte QML erfassen.

Ich glaube, das ist keine Raketenwissenschaft, nur dass ich es nicht irgendwo hin bekomme. Vielen Dank für Ihre Antworten!

Nachtrag

Ok, ich glaube nicht, dass es das Problem vor / nach dem Rendern ist, da ich alle untergeordneten qml-Dateien sehen kann, bevor ich den Picture Grabber aufrufe. Tut mir leid, dass ich nicht präzise bin.

c ++ Seite:

QQuickWidget* content..
content->setSource(QUrl("qml:/main.qml"));
//do all my dynamic qml children adding

Nachdem ich alle meine qml visuell sehen kann:

QPixmap *pm = content->grab(QRect(QPoint(0,0),QSize(-1,-1));
pm->save(....

Es sei denn, ich irre mich, ich glaube nicht, dass es Probleme mit der Wiedergabe gibt. Vielen Dank

Antworten auf die Frage(4)

Ihre Antwort auf die Frage