我正在保存一个图像QQuickWidget
有几个 QML 孩子,但我只有一张空白图像。
C++方面:
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方面:
Rectangle{ width: 5; height: 5; color: "yellow"; objectname: "rootobj"}
在 QML 中,我希望动态添加子项并能够在图像中显示它们。我努力了QQuickWindow
grabWindow
方法与一个插槽的连接,它可以工作,但它只捕获窗口可见区域,我需要捕获整个 QML。
我相信这不是火箭科学,只是我没有得到它。感谢您的回复!
附录:
好吧,我不认为这是渲染之前/之后的问题,因为在调用图片采集器之前我可以看到所有的 qml 子项。很抱歉不准确。
c++ 方面:
QQuickWidget* content..
content->setSource(QUrl("qml:/main.qml"));
//do all my dynamic qml children adding
当我可以直观地看到我所有的 qml 后:
QPixmap *pm = content->grab(QRect(QPoint(0,0),QSize(-1,-1));
pm->save(....
除非我错了,否则我不认为它是渲染问题。谢谢你!