2013-08-19 8 views
2

так что мне нужно разобрать javascript на одной странице html (вроде скрипта для моего приложения), но QWebPage бросает SIGSEGV, когда я пытаюсь его инициализировать. Это консольное приложение. Relevat части моего кода:Почему безголовый 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 из раздела «Использование QWebPage в среде без виджета» кажется, что это должно быть возможно. Но нет ошибки, просто sigsegv:/

Спасибо за помощь.

ответ

1

QT + = основные виджеты SQL сетевые 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 сигналы + лямбда-функции используется в коде выше.

Редактировать: приведенный выше код работает в режиме консоли в Windows 7. Я заменил этот фрагмент на свой пост. Это тоже работает.

Редакция 2: ОК. Я нашел причину аварии. Попробуйте заменить QCoreApplication на QApplication. И требуются веб-кавычки в файле проекта.

+0

Вы уверены, что QWebView загрузится даже без XServer? – Paladin