1

リソースファイル(ファイルで宣言され、モジュールにコンパイルされたものassets/font-awesome/fonts/fontawesome-webfont.ttfなど)をバイト配列、バイト文字列(b '')、および文字列( '')に読み込むにはどうすればよいですか?assets/jquery/js/jquery-1.11.0.min.jsmyresources.qrcpyrcc5.exemyresources.py

カスタム スキーマ ハンドラの実装に成功しました ( myscheme://controller/action/?param1=100 のようなリクエストを処理し、QNetworkAccessManagerおよびからクラスを派生させますQNetworkReply)。後でこのアプリがオンラインになった場合に、(より) シームレスな移行プロセスを経験するために、これが必要でした.

ここで、リソース (html、css、js、画像、フォントなど) 内のファイルをQWebViewカスタム スキームに提供する必要があります。私は試してみましたがQFile、それはreadAll方法です。

これは私のコードです:

f = QFile('qrc:///assets/jquery/js/jquery-1.11.0.min.js')
f.open(QIODevice.ReadOnly | QIODevice.Unbuffered)

try:
    self.content = f.readAll()
finally:
    f.close()

f.readAll()何もしないようです。

4

1 に答える 1

1

リソースパスが正しくなく、例外ハンドラーが冗長です。これは、オープン/読み取りが失敗した場合にエラーが発生しないためです (これはバグや誤機能ではありません - Qt は Python とは動作が異なります)。

代わりに、次のようなことを試してください。

    stream = QFile(':/assets/jquery/js/jquery-1.11.0.min.js')
    if stream.open(QFile.ReadOnly):
        js = str(stream.readAll(), 'utf-8')
        stream.close()
    else:
        print(stream.errorString())
于 2014-04-04T17:04:28.733 に答える