2014-01-24 85 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)