Qt 强制QWebEngine使用软件渲染

Qt 强制QWebEngine使用软件渲染,qt,qt5,qt5.5,qtwebengine,webengine,Qt,Qt5,Qt5.5,Qtwebengine,Webengine,我正在使用QWebEngine显示一些网页。不幸的是,它在内部使用OpenGL,这导致一些图形适配器崩溃(可以很容易地将驱动程序DLL视为崩溃的原因)。作为第二个警告,不可能通过try-catch块捕获此崩溃 所以我的问题是:如何强制QWebEngine只使用软件渲染而不使用OpenGL 谢谢 我假设您在Windows上,正在使用官方的Qt二进制文件,并且正在使用Qt 5.5或更高版本。这些允许 因此,将QT_OPENGL环境变量设置为“角度”(使用DirectX后端)或“桌面”就足够了。要硬编

我正在使用QWebEngine显示一些网页。不幸的是,它在内部使用OpenGL,这导致一些图形适配器崩溃(可以很容易地将驱动程序DLL视为崩溃的原因)。作为第二个警告,不可能通过try-catch块捕获此崩溃

所以我的问题是:如何强制QWebEngine只使用软件渲染而不使用OpenGL


谢谢

我假设您在Windows上,正在使用官方的Qt二进制文件,并且正在使用Qt 5.5或更高版本。这些允许

因此,将QT_OPENGL环境变量设置为“角度”(使用DirectX后端)或“桌面”就足够了。要硬编码,您可以设置Qt::AA_uUseOpengles或Qt::AA_uUseSoftwareOpenGL应用程序属性


如果您通过Qt Quick使用WebEngine,还可以使用。

为什么不在不使用OpenGL的情况下编译Qt库版本?@Flovdis如果该功能以某种方式可用,为什么要编译Qt库的自定义版本?这是一个疯狂的开销,如果有其他方法,我肯定会用它来代替它。@flovdis,因为这将迫使整个Qt环境使用软件渲染,而这不是预期的。对于我自己的基于OpenGL的应用程序,我可以很容易地检查它是否工作,并避免任何这些功能,只有QWebengine愚蠢到认为一切都很好——这会导致崩溃。因此,我只希望qWebEngine使用软件渲染,而不是所有其他Qt应用程序。我在Windows上,但在Windows 7嵌入式系统中,通过Qt对图形平台的整个检测都不起作用(正如我最近发现的那样)。我正在使用自编译的二进制文件(选项-opengl dynamic)。所以我真的需要一个选项来强制QWebEngine进行软件渲染,而不是整个环境。@Elmi您最终找到了解决方案吗?我们这里有同样的问题,一个OpenGL应用程序,它使用WebKit来显示网页。迁移到5.6需要更新到WebEngine,但仅仅创建一个QWebPage,甚至不尝试加载页面,在某些系统上会导致崩溃。我无法找出原因,我们已经在AMD和NVidia卡上发生了崩溃。有时更新图形驱动程序可以解决问题,有时则不能。强制QWebEngine使用软件光栅化听起来是个好主意。非常欢迎任何帮助…@Uflex不幸的是,QWebEngine是一个不稳定的垃圾,很遗憾它是在这个糟糕的状态下发布的…@Elmi在我们的情况下,似乎只是缺少一些依赖项。运行WinDeployQt显示丢失的文件。有关更多信息,请参阅。我不知道为什么它在某些机器上工作,但在其他机器上却不工作。。。