公众号:cpp手艺人
Qt QtWebEngine 白屏的解决方案
最近在项目中有同事反馈,软件在开启的瞬间和长时间挂机之后,会出现白屏的现象。
先来看看白屏的常见原因和解决方案
1、QtWebEngine白屏最常见的 5 大原因和解决方案:
| 主要原因 | 解决方式 |
|---|---|
| GPU 加速问题 | 禁用 GPU、使用 Software OpenGL |
| QtWebEngineProcess 未启动 | 检查目录结构、权限、杀软拦截 |
| 资源路径错误 | 开启 DevTools、自查 qrc/file 路径 |
| OpenGL 不完整 | 用 Software OpenGL 或 ANGLE |
| 沙箱限制 | 禁用 WebEngine sandbox |
2、下面按类别给出详细排查和解决方案。
1、在开机的瞬间造成的白屏现象:
其实是QtWebEngine还未加载完成,可以接受QtWebEngine加载完成信号,在接受完成之后在现实界面。
connect(view,&QWebEngineView::loadFinished,this,[=](boolok){if(ok){emitwebLoadFinished();}else{emitwebLoadError();}});2、GPU / 硬件加速导致的白屏(最常见)
在下列场景中很容易出现白屏:
- 显卡驱动过旧
- 虚拟机(VMware/VirtualBox)
- Win7 + 旧 Intel 显卡
- 服务器环境 / 不支持 GPU
- QtWebEngine 被 GPU blocklist 限制