Qt如何保存界面截图

将当前控件的界面通过grabWidget函数转为QPixmap:

QPixmap pix = QPixmap::grabWidget(ui->widget);
再通过 .save() 将pix保存至指定的文件夹中

QString fileName = QFileDialog::getSaveFileName(this, "保存图片", \
                strFile, "PNG (*.png);;BMP (*.bmp);;JPEG (*.jpg *.jpeg)");
if (!fileName.isNull())
{
   pix.save(fileName);
}

但是其实这个方法有点瑕疵,哪里呢,就是当有弹框时,截图是不能把弹框也截下来的,所以我看了下Qt的示例发现

//截取全屏
QScreen *scrPix = QGuiApplication::primaryScreen();
pixmap = scrPix->grabWindow(0);
pixmap.save("./1.png");

 

你可能感兴趣的:(Qt)