如何从QWebEnginePage获取网站内容?

How to get website content from QWebEnginePage?

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

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

但是sHtml是空的,没有调用调试。我做错了什么?

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

你没有做错任何事,你只是调用了一个异步 function :

Asynchronous method to retrieve the page's content as HTML, enclosed in HTML and BODY tags. Upon successful completion, resultCallback is called with the page's content.

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