Это продолжение к another question здесь, где я не был точным при описании моей цели.QQuickwidget захватить изображение за пределами области окна
Как упоминалось в связанном вопросе, я хочу сохранить 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);
Это должно по логике решить вопрос о размере окна, так как нет ни одного окна. Любые комментарии?
Будет ли мой вышеупомянутый код, используя метод QWidget grab(), захватить весь виджет независимо от размера виджета? --ok, теперь я понимаю: часть внешнего экрана не нарисована и, следовательно, невозможно захватить. – neoterryjoe