2017-04-30 31 views
3

私は現在Qt 5.8でQWebEngineViewで遊んでいます。.qrcファイルからindex.htmlファイルをロードしたいと思います。QWebEngineView - リソースからhtmlをロード

マイ.proファイルは次のようになります。

TEMPLATE = app 
TARGET = Launcher 
QT += webenginewidgets 
CONFIG += c++14 

SOURCES += main.cpp 

RESOURCES += \ 
    launcher.qrc 

main.cppファイルには、次のようになります。私のプロジェクトで

#include <QApplication> 
#include <QWebEngineView> 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 

    QWebEngineView view; 
    view.load(QUrl("qrc:/html/index.html")); 
    view.resize(1024, 768); 
    view.show(); 

    return a.exec(); 
} 

launcher.qrcファイルがある:index.htmlインサイド

<RCC> 
    <qresource prefix="/html"> 
     <file>index.html</file> 
    </qresource> 
</RCC> 

は、私はちょうど01のテキストを追加しました他には何もありません。

私がアプリケーションを起動すると、「ウェブサイトには到達できません」エラー画面が表示されます。
私は、周りGoogleで検索し、私のQWebEngineViewへのリソースのURLを指定するには、いくつかの異なる試みを試してみました:

view.setUrl(QUrl("qrc:/html/index.html")); // Same error page 
view.page()->setUrl(QUrl("qrc:/html/index.html")); // Same error page 
view.page()->load(QUrl("qrc:/html/index.html")); // Same error page 

私はqrc:/html/index.htmlから:/html/index.htmlへのリソースのURLを変更した場合、私はもう、このエラーページを得ることはありませんが、空白のページ代わりに。ウィンドウを右クリックして「ページソースを表示」を選択すると、ページソースも空になります。

最近Qt Creator 4.2.2で作成された新しいQtクイックアプリケーションで、同じqrc:... URLを使用してこれを動作させました。
今Qtウィジェットアプリケーションを作成しましたが、もう動作しません。
私はここで何が欠けていますか?

+1

私にとってうまく動作します。どのようなコンパイル/アプリケーションの出力も生成され、通常どおりに出力されますか? – deW1

+1

あなたは考えることができる最もシンプルなウェブサイトで試すことができますか? <!DOCTYPE HTML>

それは関係なく、私は、このファイルに入れて何の動作しません

何か

deW1

+0

を見出し。ファイルが見つからないようです。 QFileとQTextStreamを使用してファイルを開いて読み込もうとすると、アプリケーションの出力に「QIODevice :: read(QFile、 "qrc:\ html \ index.html"):device not open」と表示されます。 新しいQt Quickプロジェクトを作成し、作成した.qrcファイルを使用するとすべて正常に動作します。私はなぜこれが動作し、私の元のQtウィジェットアプリケーションはしないのかわかりません。 – TorbenJ

答えて

3

私は、上記のコメントからの解決策を、同じ問題を抱える将来のユーザーのための回答として提示します。

"[...]私は同時にプロジェクトを掃除し、" Run qmake "を押してプロジェクトを再度実行しましたが、今回は3つのURLのいずれかと一緒に作業しました。 "

+0

また、 'view.load(QUrl(":/ html/index.html "));'は動作せず、 'qrc:/'プロトコルを持っていなければなりません。 –

関連する問題