我正在尝试将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);
}
但是如果内容超过一个屏幕(你需要滚动才能看到整个图像)并保存, 图像仅显示当前所在屏幕的一部分。
如何保存scrollArea的全部内容,以便图像显示整个内容,而不仅仅是其中的一部分?
答案 0 :(得分:0)
QImage img(ui->scrollAreaWidgetContents->size(),QImage::Format::Format_ARGB32);
QPainter painter(&img);
ui->scrollAreaWidgetContents->render(&painter);
bool istrue = img.save("/file.jpg");