我安装了最新版本的 Qt(在 Webkit 上,Qt5.2 有 WTFCrash)。当页面加载时,我尝试获取我网站的内容(确实如此):
QString sHtml;
view.page()->toHtml([&](const QString& result){sHtml = result;qDebug() << result;});
但是sHtml
是空的,并且没有调用调试。我究竟做错了什么?
我安装了最新版本的 Qt(在 Webkit 上,Qt5.2 有 WTFCrash)。当页面加载时,我尝试获取我网站的内容(确实如此):
QString sHtml;
view.page()->toHtml([&](const QString& result){sHtml = result;qDebug() << result;});
但是sHtml
是空的,并且没有调用调试。我究竟做错了什么?
你没有做错任何事,你只是在调用一个异步函数:
将页面内容检索为 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;
}
找到了,toPlainText
正常工作。仍然不知道为什么 toHtml 没有。