QWebEngineView 立即崩溃,尤其是在滚动后 - Qt5.8

Posted

技术标签:

【中文标题】QWebEngineView 立即崩溃,尤其是在滚动后 - Qt5.8【英文标题】:QWebEngineView crashes immediately especially after scrolling - Qt5.8 【发布时间】:2017-03-31 18:41:56 【问题描述】:

我正在尝试一个简单的 QWebEngineView 示例,但它一直在崩溃,我不知道为什么。

这是 main.cpp 中的代码

#include <QApplication>
#include <QWebEngineView>

int main(int argc, char *argv[])

    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
    QApplication app(argc, argv);

    QWebEngineView view;
    view.resize(1024, 750);
    view.load(QUrl("http://www.qt.io"));
    view.show();

    return app.exec();

这是 .pro 文件

TEMPLATE = app

QT += webenginewidgets

SOURCES += main.cpp

target.path = $$[QT_INSTALL_EXAMPLES]/webenginewidgets/minimal
INSTALLS += target

这是我收到的错误消息

> nouveau: kernel rejected pushbuf: No such file or directory nouveau:
> ch8: krec 0 pushes 0 bufs 2 relocs 0 nouveau: ch8: buf 00000000
> 00000002 00000004 00000004 00000000 nouveau: ch8: buf 00000001
> 00000006 00000004 00000000 00000004 nouveau: kernel rejected pushbuf:
> No such file or directory nouveau: ch8: krec 0 pushes 0 bufs 2 relocs
> 0 nouveau: ch8: buf 00000000 00000002 00000004 00000004 00000000
> nouveau: ch8: buf 00000001 00000006 00000004 00000000 00000004
> nouveau: kernel rejected pushbuf: No such file or directory nouveau:
> ch8: krec 0 pushes 0 bufs 2 relocs 0 nouveau: ch8: buf 00000000
> 00000002 00000004 00000004 00000000 nouveau: ch8: buf 00000001
> 00000006 00000004 00000000 00000004 nouveau: kernel rejected pushbuf:
> No such file or directory nouveau: ch8: krec 0 pushes 0 bufs 1 relocs
> 0 nouveau: ch8: buf 00000000 00000002 00000004 00000004 00000000 The
> program has unexpectedly finished.

我在 korora 25(基于 fedora)机器上运行 Qt 5.8。

【问题讨论】:

【参考方案1】:

我在使用 Ubuntu 时遇到了同样的问题,但它在 Windows 10 中运行良好。

我已经解决了它,在创建 QApplication 之前添加以下行:

  QApplication::setAttribute(Qt::AA_UseSoftwareOpenGL);

问题与OpenGL使用有关。

【讨论】:

谢谢!这似乎也对我有用。我在 macOS 上使用 Qt5.9。当我尝试多次加载相同的 url 时,有 50% 的概率崩溃。在我设置了这个属性之后,它似乎不再崩溃了。 (至少这是我几个小时的测试结果。) 我必须收回我之前的评论。使用此 setAttribute() 调用,崩溃仍然会发生,但比不使用此调用的概率要低得多。【参考方案2】:

我在 Rstudio 上遇到过类似的问题(这是 rstudio 上非常有名的错误)有人建议在终端中使用以下命令运行它:

QT_XCB_FORCE_SOFTWARE_OPENGL=1 rstudio 

【讨论】:

以上是关于QWebEngineView 立即崩溃,尤其是在滚动后 - Qt5.8的主要内容,如果未能解决你的问题,请参考以下文章

如何在使用 QWebEngineView 'loadFinished' 加载页面后立即更改 html 元素?

Python中pyqt QWebEngineView win32gui EnumWindows程序崩溃

如何从 QWebEngineView 打印

电脑丨部分用户在Mac OS 10.15.4上遇到系统崩溃,尤其是在大文件传输期间!

React Native 应用程序在 iOS TestFlight 上立即崩溃

QWebEngineView 触摸滚动