Почему безголовый 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 в файле проекта не требуется.

Другие вопросы по тегам