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

2024-06-12 05:22:54 发布

您现在位置:Python中文网/ 问答频道 /正文

如何将资源文件(比如assets/font-awesome/fonts/fontawesome-webfont.ttfassets/jquery/js/jquery-1.11.0.min.jsmyresources.qrc文件中声明并使用编译为myresources.py模块的{})读入字节数组、字节字符串(b'')和字符串(''?在

我已经成功地实现了一个自定义模式处理程序(来处理像myscheme://controller/action/?param1=100,从QNetworkAccessManagerQNetworkReply派生类。我需要这个,因为如果以后这个应用程序应该上线,我会体验一个(更)无缝的迁移过程。在

现在我需要将资源(html、css、js、images、fonts…)中的文件提供给自定义方案中的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()什么也没做。在


Tags: 文件字符串字节jsfonts资源jquerymin
1条回答
网友
1楼 · 发布于 2024-06-12 05:22:54

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

相关问题 更多 >