Как получить контент сайта от QWebEnginePage?

Я установил новейшую версию Qt (на Webkit в Qt5.2 был WTFcrash). Я пытаюсь получить контент моего сайта, когда страница загружена (и это так):

QString sHtml;
view.page()->toHtml([&](const QString& result){sHtml = result;qDebug() << result;});

Но sHtml пуст, и отладка не вызвана. Что я делаю неправильно?

3

Решение

Нашел это, toPlainText работать должным образом. Все еще не знаю, почему toHtml не делает.

1

Другие решения

Вы не делаете ничего плохого, вы просто вызываете асинхронный функция :

Асинхронный метод для извлечения содержимого страницы в виде HTML, вложенный
в тегах HTML и BODY. После успешного завершения resultCallback
вызывается с содержанием страницы.

HTML не будет доступен сразу после звонка toHtml(), Вместо этого вы можете использовать некоторые сигналы и слоты, чтобы преодолеть это:

protected slots:
void handleHTML(QString sHTML);

signals:
void getHTML(QString sHTML);

void yourClass::yourFunction()
{
connect(this, SIGNAL(getHTML(QString)), this, SLOT(handleHTML(QString)));
view->page()->toHtml([this](const QString& result) mutable {emit getHTML(result);});
}

void yourClass::handleHTML(QString sHTML)
{
qDebug()<< "The HTML is :" << sHTML;
}
1

По вопросам рекламы [email protected]