网页全屏截图问题总结
问题:因使用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测试发现,这两个版本都不能正常全屏截图,截取出来的图片只有首页正常,底部是空白,没有截取到。 代码实现:视频演示源码问题:因使用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::ShowScrollBarsm_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");}
视频演示
网页全屏截图演示
源码
/download/fyg_fly/81445182
如果觉得《【网页全屏截图问题总结】》对你有帮助,请点赞、收藏,并留下你的观点哦!