2014-04-04 7 views
1
I의 (a myresources.qrc 파일에 선언하고 myresources.py 모듈로 컴파일 pyrcc5.exe를 사용 assets/font-awesome/fonts/fontawesome-webfont.ttf 또는 assets/jquery/js/jquery-1.11.0.min.js 같은 말) 바이트 배열에 바이트 문자열 리소스 파일을 읽을 수있는 방법

(b '')와 문자열 ('')?읽기 자원 (PyQt는)

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()은 아무것도하지 않는 것 같다

내 코드입니다.

답변

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())