如何从QWebEnginePage获取网站内容

How to get website content from QWebEnginePage?

本文关键字:网站 获取 QWebEnginePage      更新时间:2023-10-16

我安装了最新版本的Qt(在Webkit上,Qt5.2有WTFcrash)。我尝试在页面加载时获取我网站的内容(确实如此):

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

但是sHtml是空的,并且不调用调试。我做错了什么?

你没有做错任何事,你只是在调用一个异步函数:

以 HTML 形式检索页面内容的异步方法,随附 在 HTML 和 BODY 标记中。成功完成后,结果回调为 使用页面内容调用。

调用 toHtml() 后,HTML 将不可用。相反,您可以使用一些信号和插槽来克服此问题:

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;
}

找到了,toPlainText正常工作。仍然不知道为什么toHtml没有。