为什么无头qwebpage投掷sigsegv?

时间:2013-08-19 03:30:35

标签: qt qtwebkit qwebkit qwebpage

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

QT       += core sql network xml webkit

QT       -= gui

QMAKE_CXXFLAGS += -std=c++11

LIBS += -lqca

TARGET = jarvisd
CONFIG   += console
CONFIG   -= app_bundle

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

它在第一行崩溃了。从QWebPage的文档,“在Widget-less环境中使用QWebPage”部分,似乎这应该是可能的。但是没有错误,只有sigsegv:/

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

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

使用类似的东西:

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是必需的。