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

标签 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 模块)字节数组、字节字符串 (b'') 和字符串 ('')?

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

现在我需要在自定义方案中将资源(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()什么也没做。

最佳答案

您的资源路径不正确,并且异常处理程序是多余的,因为如果打开/读取失败,则不会引发错误(这不是错误或故障 - 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())

关于python - 在 Qt 中将资源读入字节数组 (PyQt),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22861534/

相关文章:

Python PYQT 转换文件

python - 如何从 python 线程更新 QML ListView?

python - 我如何限制每个用户的 Flask 应用程序速率?

Python 忽略非空值之后的 DataFrame 行

python - 如何找到交替重复的数字对?

python - Django-按创建日期排序多个模型

python - 从 QListView PyQt 中检索选定的项目

python - 如何在 Python 中编码分类值

python - 当 value 是 cls 的实例时,您可以注释返回类型吗?

python - 从 subprocess.Popen 进行流式传输并使用两个子命令时出现死锁