2012-10-21 53 views
1

我的Qt應用程序應該打開一個html頁面(默認瀏覽器如:IE)。該html代碼存儲在QString中。HOWTO中打開HTML頁面中的默認瀏覽器,當HTML代碼存儲在QString的

什麼是打開這個「文件」的最好方法,而我只有內容?

QTemporaryFile這個問題的答案?或者這可以做得更容易?

QString content = "<html>...</html>"; 
? 
QDesktopServices::openUrl(QUrl("...")); 
+0

爲什麼你不希望使用一個例子[Qt的Webkit的(http://doc.qt.digia.com/qt/qtwebkit.html)在打開的頁面應用? – Lol4t0

+0

我想要展示的網頁包含了很多複雜的重定向,下載等。使用默認瀏覽器更容易,因此用戶可以使用他們所知道的環境。 –

回答

1

QTemporaryFile方法是迄今爲止最容易完成您的任務。

我沒有看到其他任何其他方式然後做一些「vodoo」與ActiveQt可,如果在所有工作。

此致敬禮。

編輯:

QString htmlData; // your HTML data here 

// The six Xs are actually required. 
QTemporaryFile tmpFile(QLatin1String("thefileXXXXXX.html")); 
tmpFile.open(); 
QTextStream out(&tmpFile) 
out << htmlData; 
tmpFile.close(); 
QDesktopServives::openUrl(QUrl::fromLocalFile(tmpFile.fileName())); 
+1

謝謝!你知道如何用這個QString的內容生成一個臨時文件嗎?它應該有擴展名「.html」。有QTemporaryFile的只有幾個例子在網上和我不明白它的基本功能:■ –

+0

我會更新我原來的答覆:) –

+0

你嘗試了嗎?我很害怕,它不會工作,因爲'QTemporaryFile :: close' [不起作用(http://qt.gitorious.org/qt/qt/blobs/4.8/src/corelib/io/qtemporaryfile.cpp #line425) – Lol4t0

相關問題