使用具有相对路径的Image在QTextEdit中加载HTML

时间:2014-01-24 10:34:26

标签: qt qtextedit

使用QWebKit,我可以使用baseurl加载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())。

2 个答案:

答案 0 :(得分:1)

经过长时间的搜索,我在Qt的代码中找到了解决方案:

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

来源为qtextdocument.cpp in line 1990

答案 1 :(得分:0)

感谢您的脑电波

对我来说(dable©Aznavour) 这适用于Mac和Linux 只有“file:”被添加。

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

谢谢(适用于Windows,Mac,Linux,QT 4.6.3 - &gt; 5.3.1)