【发布时间】:2014-07-26 17:51:12
【问题描述】:
我有一个 Qt 程序,它可以下载网页 (HTML),解析它们,然后生成自己的 HTML,然后用QWebPage 显示。有时我下载的 HTML 包含 IMG 标记,当 src 属性包含完整 URL 时,这些标记可以正常工作。但是,有时IMG 标签可能会使用相对路径,例如:
<IMG SRC="images/foo.png" />
由于我知道应该添加到 SRC 之前的 URL,我的第一个想法是在解析时将其添加到生成的 HTML 中。但是,事实证明这比我预期的要困难,现在我想知道是否有更好的方法。
如果 QWebPage 有任何机制/属性,我可以说“将此 URL 用于相对路径”?或者也许有人可以提出更好的方法来完成我想要的?
谢谢!
【问题讨论】:
-
从问题中不清楚为什么相对路径没有解析。请提供一些说明问题的示例代码。
-
您可以尝试调用 QDir::setCurrent() 到您的 .html 文件的文件夹吗?也许它可以帮助解决相对路径。不过我不确定。
-
@MrEricSir 我使用 QNetworkManager (et al) 来获取我想要的页面的 HTML,但这并不是我实际显示的 HTML。我做了一些解析/处理/操作并生成我自己的 HTML。然后我只需调用 QWebView::setHtml.
-
@ch0kee 我不确定图像是否真的从我最初的 QNetworkRequest 中下载。我想知道是否有办法在单个 QNetworkReply 中获取图像,然后我可以处理响应的 MIME 部分......嗯......