5

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

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

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

4

2 回答 2

3

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

将页面内容检索为 HTML 的异步方法,包含在 HTML 和 BODY 标记中。成功完成后,将使用页面内容调用 resultCallback。

在调用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;
}
于 2016-06-20T10:22:31.127 回答
2

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

于 2016-03-20T11:22:41.867 回答