如何在PySide中使用qrc资源文件

网上找到的都是rcc的使用方法,对于PySide-rcc介绍较少,经过对rcc和pyside-rcc试验和整理处使用的方法,形成文字,技术备档。

Resource Collection Files (.qrc)
应用程序关联的应用程序由 .qrc 文件来指定,它用XML记录硬盘上的文件和对应的随意指定的资源名称,应用程序通过资源名称来访问资源。
 
1.创建一个qrc 文件:
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
     <file>images/cut.png</file>
</qresource>
</RCC>
2.windows下需要设置系统path里加上C:\Python27\Lib\site-packages\PySide目录,这样才能使用pyside-rcc命令(Resource Compiler for PySide)
3.pyside-rcc myresource.qrc -o myresource_rc.py
4.引用myresource_rc.py
在程序中把原来引用文件的地方更换为 :/cut-img.png ,如果没有指定file alias可以使用:/images/cut.png调用
5.完成
 
PS:
文件里使用的路径是 .qrc 文件所在目录的相对路径。注意,内部使用的资源文件必须位于 .qrc 文件所在目录或者其子目录下。
资源数据也能被编译进二进制文件中,因此应用程序代码可以立即访问;也可以创建一个二进制资源,稍后在程序中登记了资源体系的代码中指定。
缺省时,程序可以用资源在源码树中的名称加一个 :/ 前缀来访问它。例如,在程序的源码树中是 images/cut.png 的文件可以通过 :/images/cut.png 来访问。但也可以用 file 标签中的 alias 属性来指定:
<file alias="cut-img.png">images/cut.png</file>
<qresource prefix="/myresources">
<file alias="cut-img.png">images/cut.png</file>
</qresource>

调用是使用 :/myresources/cut-img.png 调用。

PS:如有需要多国语言是。这可以在 qresource 标签的 lang 属性中指定一个合适的本地化字串来实现。例如:
<qresource>
     <file>cut.jpg</file>
</qresource>
<qresource lang="fr">
     <file alias="cut.jpg">cut_fr.jpg</file>
</qresource>
如果用户的本地化设置是 French (也就是说,QLocale::system().name() returns "fr_FR"),:/cut.jpg 就会引用 cut_fr.jpg 图像。对于其他本地化设置,仍然用 cut.jpg 。
 

 

posted on 2012-01-28 20:40  源姜  阅读(1363)  评论(0编辑  收藏  举报

导航