我的Qt應用程序應該打開一個html頁面(默認瀏覽器如:IE)。該html代碼存儲在QString
中。HOWTO中打開HTML頁面中的默認瀏覽器,當HTML代碼存儲在QString的
什麼是打開這個「文件」的最好方法,而我只有內容?
是QTemporaryFile
這個問題的答案?或者這可以做得更容易?
QString content = "<html>...</html>";
?
QDesktopServices::openUrl(QUrl("..."));
我的Qt應用程序應該打開一個html頁面(默認瀏覽器如:IE)。該html代碼存儲在QString
中。HOWTO中打開HTML頁面中的默認瀏覽器,當HTML代碼存儲在QString的
什麼是打開這個「文件」的最好方法,而我只有內容?
是QTemporaryFile
這個問題的答案?或者這可以做得更容易?
QString content = "<html>...</html>";
?
QDesktopServices::openUrl(QUrl("..."));
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()));
謝謝!你知道如何用這個QString的內容生成一個臨時文件嗎?它應該有擴展名「.html」。有QTemporaryFile的只有幾個例子在網上和我不明白它的基本功能:■ –
我會更新我原來的答覆:) –
你嘗試了嗎?我很害怕,它不會工作,因爲'QTemporaryFile :: close' [不起作用(http://qt.gitorious.org/qt/qt/blobs/4.8/src/corelib/io/qtemporaryfile.cpp #line425) – Lol4t0
爲什麼你不希望使用一個例子[Qt的Webkit的(http://doc.qt.digia.com/qt/qtwebkit.html)在打開的頁面應用? – Lol4t0
我想要展示的網頁包含了很多複雜的重定向,下載等。使用默認瀏覽器更容易,因此用戶可以使用他們所知道的環境。 –