2

アプリケーションの読み込み時に Java スクリプト オブジェクトを QwebKit に読み込む必要がありますか
? setHtml を HTML と Java スクリプト文字列をフォーマットして使用できますが、維持するのは非常に困難です。
私の質問は、HTML および Java スクリプトをリソースとして Qwebkit に埋め込むことはできますか?
また、アプリケーションのユーザーが html と javascript を利用できるようにする必要はありません。

4

1 に答える 1

3

はい、できます。

JS/CSS をリソース ファイルに追加し (方法がわからない場合は Qt のドキュメントを調べてください)、HTML でqrc:/file/path/or/alias.

たとえば、リソース ファイルに JQuery を追加し、別名を として/js/jqueryロードする場合、これを HTML ファイルに配置します。

<script type="text/javascript" src="qrc:/js/jquery"></script>

リソースファイルからHTMLファイルをロードするのは、仕事に取り組めないように見えるので、もっと手間がかかるようですQWebKit::setUrl(QUrl("qrc:/resource/path"))(「:/resource/path」も私にはうまくいきません)。私が現在していることはこれです:

QString readFile (const QString& filename)
{
    QFile file(filename);
    if (file.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        QTextStream stream(&file);
        return stream.readAll();
    }
    return "";
}

...
myWebKitObject->setHtml(readFile("qrc:/html/index"));

ただし、他の HTML リソースへのリンクを作成することは問題になる場合があります。対処法を知っている方がいましたらコメントお願いします!(webkit が http 要求を送信するときにインターセプトするようにネットワーク マネージャー クラスを再実装することでこれを行うことができると思います。それらが qrc:/ URL の場合は、リソース システムからファイルを読み取り、それに応答しますが、MIME タイプを管理する必要があります。など(たとえば、リソースが画像の場合)あなた自身...)

于 2010-10-26T18:12:30.033 に答える