关于qt:为什么headless qwebpage会抛出sigsegv?

why is headless qwebpage throwing sigsegv?

所以,我需要针对一个 html 页面(有点像我的应用程序的脚本)解析一些 javascript,但是当我尝试初始化 QWebPage 时会抛出 SIGSEGV。它控制台应用程序。我的代码的相关部分:

1
2
3
4
5
6
7
8
9
10
11
12
13
QT       += core sql network xml webkit

QT       -= gui

QMAKE_CXXFLAGS += -std=c++11

LIBS += -lqca

TARGET = jarvisd
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app
1
2
QWebPage * p = new QWebPage();
p->mainFrame()->load(QUrl(url));

它在第一行崩溃。从 QWebPage 的文档中,从"在无小部件环境中使用 QWebPage"部分,看来这应该是可能的。但没有错误,只是 sigsegv :/

感谢您的帮助。


QT = 核心小部件 sql network xml webkit webkitwidgets

使用类似这样的东西:

1
2
3
QWebView *view = new QWebView();
view->load(QUrl("http://127.0.0.1"));
QObject::connect(view, &QWebView::loadFinished, [view](){fprintf(stderr, view->title().toLocal8Bit().data());});

Qt5 发出上面代码中使用的 lambda 函数。

编辑:上面的代码在 Windows 7 上以控制台模式运行。我用您帖子中的代码替换了这个代码段。这也有效。

编辑2:
行。我找到了崩溃的原因。尝试用 QApplication 替换 QCoreApplication。并且项目文件中需要webkitwigets。