如何从QWebEnginePage获取网站内容?

时间:2016-03-20 11:10:00

标签: c++ qt qt5 qtwebengine qt5.6

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

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

sHtml为空,调试未调用。我做错了什么?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

你没有做错任何事,你只是在调用异步function

  

将页面内容检索为HTML的异步方法,随附   在HTML和BODY标签中。成功完成后,resultCallback就是   用页面内容调用。

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