在Qt中将资源读入字节数组(PyQt)

时间:2014-04-04 11:26:59

标签: python python-3.x pyqt qwebview pyqt5

如何读取资源文件(例如assets/font-awesome/fonts/fontawesome-webfont.ttfassets/jquery/js/jquery-1.11.0.min.js,其在myresources.qrc文件中声明并使用编译到pyrcc5.exe模块的myresources.py in到字节数组,字节串(b'')和字符串('')?

我已成功设法实现自定义架构处理程序(处理myscheme:// controller / action /?param1 = 100等请求,从QNetworkAccessManagerQNetworkReply派生类)。我需要这个,如果以后这个应用程序应该上线,我将体验(更多)无缝迁移过程。

现在我需要在我的自定义方案中将资源(html,css,js,images,fonts,...)中的文件提供给QWebView。我尝试了QFilereadAll方法。

这是我的代码:

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()什么也没做。

1 个答案:

答案 0 :(得分: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())