2016-12-08 2 views
1

QWebEngineViewを使用して静的なHTMLページを表示するQtウィジェットプロジェクトがあります。そのページには、Qt実行可能ファイル/インストーラで「パック」する必要のあるイメージが表示されます。 QRCファイルを使用してイメージを追加し、それをHTMLファイルから参照できますか?スタティックHTMLリソースからアクセスできるようにQtリソースにイメージをパックする方法

"qrc:/ image ..."表記を使って画像にアクセスしようとしましたが、QWebEngineViewがプロジェクトのリソースと関係のない埋め込みブラウザを表示していることを完全に理解しています。別の方法ですか? main.cppにではQt 5.6の場合

+1

正確にあなたが望むものを理解していますが、一時ファイルに画像を読み込むことができますし、としてそれを指すようにされませんHTMLでソース? – ilotXXI

+0

も同様に良い解決策になる可能性があります。この場合は、html +画像をいくつかの一時的な場所に展開する必要があります。 lesykの答えは – rubmz

+0

です。一時的な場所生成のユーティリティとして 'QTemporaryFile'、' QTemporaryDir'、 'QDesktopServices :: TempLocation'を使うことができます。もう一つの方法はBase64エンコーディングを使ってHTMLに画像を埋め込むことですが、HTMLを大きくすることができ、 'QWebEngineView'がそれをサポートしているかどうかはわかりません。 – ilotXXI

答えて

1

:HTMLで

... 
QString helpHTMLFile = QStandardPaths::writableLocation(QStandardPaths::TempLocation); 
helpHTMLFile.append(QDir::separator()); 
helpHTMLFile.append("index.html"); 
QFile(helpHTMLFile).remove(); 
QFile(":/index.html").copy(helpHTMLFile); 

QQmlApplicationEngine engine; 
engine.rootContext()->setContextProperty("pathToFile", "file:///"+helpHTMLFile); 

QString logo = QStandardPaths::writableLocation(QStandardPaths::TempLocation); 
logo.append(QDir::separator()); 
logo.append("logo.svg"); 
QFile(logo).remove(); 
QFile(":/logo.svg").copy(logo); 
... 

... 
<img src="logo.svg" class="loginFooterImg"> 
... 
+0

私は何をしようとしているように見えます。確認して結果を返す – rubmz

+0

その他のオプションはウェブから画像を読み込むことです。 (私はあなたがそれについて考えていたと確信しています) – lesyk

+0

これは単なるデスクトップアプリなので – rubmz

関連する問題