如何从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;
}
我安装了最新版本的 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;
}