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)。我需要这个,因为如果以后这个应用程序应该上线,我将体验(更多)无缝迁移过程。

现在我需要QWebView在我的自定义方案中提供资源(html、css、js、图像、字体等)中的文件。我试过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 回答