写了一个带 Qt WebEngine 模块的程序,在日常机器上都好好的。但在一些老电脑上和一些特殊的云端、虚拟化环境下,会出现界面无法显示、显示不全、本地显示器能看到但远程桌面看不到等问题。
应该是 Qt WebEngine 模块依赖 OpenGL,而某些环境没有安装显卡驱动或者云端平台不能正常捕获OpenGL窗口,导致无法运行。
这个时候,可以额外传递下面两个命令行,强制网页界面不使用OpenGL渲染,实现兼容:
--disable-gpu --no-sandbox
代码层面上不需要任何更改。显然,Qt WeEngine 模块会自动检测相关的命令行,并调整自身行为。