Это продолжение другого вопроса, в котором я неточно описывал свою цель.
Как упоминалось в связанном вопросе, я хочу сохранить QML, встроенный в QQuickWidget
, и он больше размера окна. Метод QQuickWindow
grabWindow()
захватывает только область окна, поэтому я попробовал следующий код после того, как отобразил его визуально:
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
. Предлагаемые решения в предыдущем вопросе захватывают только содержимое, попадающее в окно.
Какие-либо предложения? Спасибо! :)
Приложение:
Я пробовал следующее, но не работал:
QImage paintdev(largeWidth, largeHeight, QImage:Format_RBG32);
content->render(paintdev, QPoint(0,0), QRegion(QRect(0,0,largeWidth, largeHeight), QWidget::DrawChildren);
paintdev.save(fileName, 0, 100);
По логике это должно решить проблему размера окна, поскольку окна нет. Любые комментарии?