网页全屏截图问题总结
问题:因使用QT实现网页全屏截取的过程中时,截取出来的图片只有首页正常,底部是空白,没有截取到,目前在官网上也没有找到合理的解释。
解决方案:博主通过测试发现,使用QT的版本为QT 5.12.9这个版本是正常的;其它版本如QT 5.12.1,QT 5.12.11截取的图片都存在问题。
特别注意:
1、QT5.10以上版本才引入QWebEngineSettings::ShowScrollBars;
2、博主使用QT 5.12.1和QT 5.12.11测试发现,这两个版本都不能正常全屏截图,截取出来的图片只有首页正常,底部是空白,没有截取到。
代码实现:
void MainWindow::FullScreenShoot()
{
m_webView->setAttribute(Qt::WA_DontShowOnScreen);
//注意:QT5.10以上版本才引入QWebEngineSettings::ShowScrollBars
m_webView->page()->settings()->setAttribute(QWebEngineSettings::ShowScrollBars, false);
m_webView->show();
QSize size = m_webView->page()->contentsSize().toSize();
m_webView->resize(size);
QTimer::singleShot(1200, this, SLOT(FullScreenSave()));
}
void MainWindow::FullScreenSave()
{
QString dirPath = QString::fromLocal8Bit("/网页全屏截图路径/");
QString filePath = QCoreApplication::applicationDirPath() + dirPath;
qDebug()<<filePath;
CreateDir(filePath); //创建该目录
QString getTime = QDateTime::currentDateTime().toString("yyyy-MM-dd-hh-mm-ss-zzz");
QString filePathName = "web-" + getTime + ".png";
QString fileFullPathName = filePath + filePathName;
m_webView->grab().save(fileFullPathName, "PNG");
}
视频演示
网页全屏截图演示
源码
https://download.csdn.net/download/fyg_fly/81445182