0

QWebView ウィジェットで開いているローカル html ファイルに問題があります。だから、私はこのようにします:

QWebView *myWebView = new QWebView;    
myWebView->load(QUrl("qrc:/index.htm"));

確かに、リソースに index.htm を追加しました。しかし、QWebView には白い画面があります。Firefoxでローカルファイルを開こうとしましたが、大丈夫です。

修正するにはどうすればよいですか?

PS: htm-page は js ファイルと css ファイルを使用しますが、それらもリソースに追加しました。PSS: また、次のようにしようとしました。

QFile res(":/index.htm");
res.open(QIODevice::ReadOnly|QIODevice::Text);
myWebView->setHtml(res.readAll());

しかし、それは役に立ちません。

4

3 に答える 3

1

ファイルを QByteArray にロードして、正しくロードされることを確認しましたか?

編集:

次のようなもの(テストされていませんが、アイデアはわかります):

QFile file(":/index.htm");
if(file.open(QIODevice::ReadOnly)) {
    QByteArray dump = file.readAll();
    qDebug() << "contents: " << dump;
} else {
    qDebug() << "error: " << file.error();
}

error()メソッドはQFile::FileError列挙型を返します。

于 2013-03-09T16:02:19.170 に答える
1

私は最初にこれを試します:

connect(myWebView, SIGNAL(loadFinished(bool)), this, SLOT(finishedLoad(bool)));
....
void finishedLoad(bool ok){
    qDebug() << ok;
}

次に、読み込み中に Web ビューでエラーが発生しているかどうかがわかります。エラーは、不適切な形式の html などが原因である可能性があります。

別の方法として、リソースの内容を文字列にロードしてから、次のようにします。

myWebView->setHtml(stringFromResource);
于 2013-03-09T15:52:35.360 に答える
1

あなたの問題はリソースファイルの使用にあります。ここにいくつかのアドバイスがあります:

  • あなたのファイルは本当にドライブにありますか?
  • ビルド前にリソース ファイルを保存しましたか? すべてを保存して、クリーンビルドを実行してみてください。
  • まず最初に、.qrcファイル (xml のようなテキスト ファイル) をチェック (必要に応じて表示) しますが、正しいですか? プレフィックス(<qresource prefix="/">)などを追加しましたか
  • のようなエイリアスを使用してみてください。そうすれば、アプリケーションから<file alias="cut-img.png">images/cut.png</file>ファイルにアクセスできるようになり:/cut-img.pngます。

もちろん、ドキュメントを確認することを忘れないでください -- http://qt-project.org/doc/qt-4.8/resources.html

幸運を!

于 2013-03-09T19:03:44.337 に答える