2014-04-04 79 views
1

我如何读取(在一个myresources.qrc文件中声明和使用pyrcc5.exe编译为myresources.py模块比如说像assets/font-awesome/fonts/fontawesome-webfont.ttfassets/jquery/js/jquery-1.11.0.min.js)的字节数组,字节字符串资源文件( b'')和字符串('')?我已经成功地实现了一个自定义模式处理程序(处理类似myscheme:// controller/action /?param1 = 100的请求,从QNetworkAccessManagerQNetworkReply派生类)。我需要这个,如果以后这个应用程序应该上线,我会体验一个(更多)无缝迁移过程。读取资源到字节数组中的Qt(PyQt的)

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

回答

1

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