這是續集another question在這裏,我在描述我的目標是不準確的。QQuickwidget抓取圖像外窗面積
正如在鏈接問題中提到的,我希望保存嵌入在QQuickWidget
中的QML,並且它大於窗口大小。該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的抓()方法捕獲整個部件,無論小部件的大小? --ok,我現在明白了:屏幕外的部分沒有被繪製,因此不可能被捕獲。 – neoterryjoe