http://doc.trolltech.com/latest/resources.html
qrc文件:
xml格式的qrc文件,給出資源名字和磁盤上資源之間的聯繫。例如
<!DOCTYPE RCC><RCC version="1.0"> <qresource prefix="/myresources"> <file alias="cut-img.png">images/cut.png</file> <file>images/new.png</file> <file>images/open.png</file> <file>images/paste.png</file> <file>images/save.png</file> </qresource </RCC>
file的alias屬性給資源一個額外的名字
qresource的prefix屬性給所有資源名字加上了前綴
qresource的屬性lang屬性,來本地化資源文件
<qresource> <file>cut.jpg</file> </qresource> <qresource lang="fr"> <file alias="cut.jpg">cut_fr.jpg</file> </qresource>
當QLocale::system().name()返回“fr_FR”時,”:/cut.jpg”會指向cut_fr.jpg
將資源編譯到可執行文件中:
C++中,.pro文件 –〉qmake –> 生成qrc_application.cpp –> 成爲application可執行程序的一部分
python中,用pyrcc4編譯資源文件:
pyrcc4 app.qrc -o app_rc.py
則二進制文件成爲靜態的數組存放在application_rc.py中,通過QTCore.qRegisterResourceData()註冊。似乎和編譯爲獨立的二進制文件沒多大區別~
將資源編譯爲獨立的二進制文件:
需要時註冊和反註冊。
第一步:創建.qrc文件
第二步:編譯: rcc –binary myresource.qrc –o myresource.rcc
第三步:在程序中通過QResource API註冊
QResource::registerResource(“/path/to/myresource.rcc”)
在程序中使用資源:
加上":/”表示資源引用,例如: QIcon(":/images/cut.png")
資源在內部的表示:
程序啓動時,資源在內存中以樹的形式生成。QFile來解析資源的路徑。用“:/”來初始化QDir可以遍歷資源樹。