C++ Qt:将整个QScrollara内容保存为图像

C++ Qt:将整个QScrollara内容保存为图像,c++,qt,C++,Qt,我正在尝试将QScrollArea的内容保存为图像。 目前,我正在这样做 QPixmap pixmap(ui->overview->rect().size()); ui->overview->render(&pixmap, QPoint(),QRegion(ui->overview->rect())); QString saveFilename = QFileDialog::getSaveFileName(this, "Save as", "Choo

我正在尝试将QScrollArea的内容保存为图像。 目前,我正在这样做

QPixmap pixmap(ui->overview->rect().size());
ui->overview->render(&pixmap, QPoint(),QRegion(ui->overview->rect()));

QString saveFilename = QFileDialog::getSaveFileName(this, "Save as", "Choose a filename","PNG(*.png);; TIFF(*.tiff *.tif);; JPEG(*.jpg *.jpeg)");
if(!pixmap.save(saveFilename))
{
    QMessageBox::warning(this, "Error","File could not be saved", QMessageBox::Ok);
}
但是如果内容超过一个屏幕(你需要滚动才能看到整个图像),我会保存它, 该图像仅显示其当前所在屏幕的一部分


如何保存滚动区域的全部内容,以便图像显示整个内容,而不仅仅是其中的一部分?

要清楚:ui->overview是我要保存的滚动区域。与其将滚动区域呈现为
QPixmap
,不如呈现滚动区域的小部件。您可以使用获取滚动区域的小部件。使用滚动区域小部件不是AcrollArea虽然这可能会回答作者的问题,但它缺少一些解释文字和/或指向文档的链接。如果没有一些短语,原始代码片段就没有多大帮助。你也会发现这很有帮助。请编辑您的答案。
QImage img(ui->scrollAreaWidgetContents->size(),QImage::Format::Format_ARGB32);
QPainter painter(&img);
ui->scrollAreaWidgetContents->render(&painter);
bool istrue = img.save("/file.jpg");