2012-06-08 7 views
7

Próbuję zrozumieć przykład w PyQt4 (simpletreemodel.pyw) widzę kodzasobem w PyQt4

import simpletreemodel_rc 

Ale nie mogę zobaczyć, gdzie moduł jest używany w przykładowym kodzie Kiedy sprawdzam moduł simpletreemodel, widzę:

from PyQt4 import QtCore 

qt_resource_data = b"\ 
\x00\x00\x07\xb9\ 
\x47\ 
\x65\x74\x74\x69\x6e\x67\x20\x53\x74\x61\x72\x74\x65\x64\x09\x09\ 
\x09\x09\x48\x6f\x77\x20\x74\x6f\x20\x66\x61\x6d\x69\x6c\x69\x61\ 
\x72\x69\x7a\x65\x20\x79\x6f\x75\x72\x73\x65\x6c\x66\x20\x77\x69\ 
\x74\x68\x20\x51\x74\x20\x44\x65\x73\x69\x67\x6e\x65\x72\x0a\x20\ 
\x20\x20\x20\x4c\x61\x75\x6e\x63\x68\x69\x6e\x67\x20\x44\x65\x73\ 
\x69\x67\x6e\x65\x72\x09\x09\x09\x52\x75\x6e\x6e\x69\x6e\x67\x20\ 
\x74\x68\x65\x20\x51\x74\x20\x44\x65\x73\x69\x67\x6e\x65\x72\x20\ 

Co ten moduł ma robić? Dzięki

Odpowiedz

12

To, co widzisz, to zrzut bajt po bajcie zasobów zawartych w pliku .qrc. Nie uzyskujesz jawnie dostępu do obiektów wewnątrz modułu. Po prostu zaimportuj go, a będziesz miał dostęp do tych zasobów po oryginalnych nazwach (i ścieżkach), ale poprzedzonych dwukropkiem.

pixmap = QPixMap(':/images/filename.jpg') 

UPDATE: plik QRC to plik XML, który wygląda jak poniżej:

<RCC> 
    <qresource prefix="/images"> 
    <file alias='filename.jpg'>images/filename.jpg</file> 
    </qresource> 
</RCC> 

Następnie, aby go wygenerować, zastosowanie:

pyrcc4 -o images_rc.py images.qrc 
+0

jest moduł generowane automatycznie przez Pythona ? i jak utworzyć plik qrc? – nam

+0

Odpowiedziałem w trybie online. HTH – SuperSaiyan

+0

Ale czy możesz wyjaśnić, dlaczego musimy wygenerować images_rc.py zamiast używać bezpośrednio pliku obrazu? Czy to optymalizacja wydajności? – nam