2014-01-24 66 views
1

图像的QWebKit我能够用的BaseURL加载HTML:加载HTML与相对路径

// File e.g. with <img src="images/picture.jpg" /> 
const QByteArray oHTMLContent = oFile.readAll(); 
QFile oFile(rFileInfo.absoluteFilePath()); 

QUrl oBaseUrl = QUrl::fromLocalFile(rFileInfo.absolutePath() + "/"); 
QWebFrame* pFrame = m_pWebView->page()->mainFrame(); 
pFrame->setHtml(oHtmlContent, oBaseUrl); 

有没有办法做同样的,与QTextEdit一起? (因为我的图片都是相对于HTML文档,而不是二进制(一个QDir :: currentPath())

+0

是否'的QTextEdit :: setHtml()'和'oFile.readAll()'作为参数为你工作? – vahancho

+0

是的,但我会编辑示例代码以使其更清晰 – Charly

+0

(我正在使用Qt 4.8.4) – Charly

回答

1

长期搜索后,我发现在Qt的代码的解决方案:

m_pWebView->document()->setMetaInformation(QTextDocument::DocumentUrl, 
              rFileInfo.absolutePath() + "/"); 

来源是qtextdocument.cpp in line 1990

0

感谢您的脑波

,我(dable©阿兹纳乌尔) 这在Mac和Linux 仅在 “文件:” 被预先计划

#ifdef Q_WS_WIN 
    document()->setMetaInformation(QTextDocument::DocumentUrl, imagePath + "/"); 
#else 
    document()->setMetaInformation(QTextDocument::DocumentUrl, "file:" + imagePath + "/"); 
#endif 

感谢(这个工程在Windows上,苹果机,Linux,QT 4.6.3 - > 5.3.1)