Почему безголовый qwebpage бросает sigsegv?
Поэтому мне нужно проанализировать некоторые javascript для одной html-страницы (что-то вроде сценария для моего приложения), но 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 в среде без виджетов" кажется, что это должно быть возможно. Но ошибки нет, просто сигсегв:/
Спасибо за вашу помощь.
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 + лямбда-функция, используемые в приведенном выше коде.
Изменить: приведенный выше код работает в режиме консоли на Windows 7. Я заменил этот фрагмент на тот, что в вашем посте. Это тоже работает.
Изменить 2: ОК. Я нашел причину крушения. Попробуйте заменить QCoreApplication на QApplication. И webkitwigets в файле проекта не требуется.