我安装了最新版本的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没有。