2014-04-04 30 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())