PyQt4中的资源文件

nam*_*nam 8 python embedded-resource pyqt4

我试图理解PyQt4中的一个例子(simpletreemodel.pyw)我看到了代码

import simpletreemodel_rc
Run Code Online (Sandbox Code Playgroud)

但我无法看到示例代码中模块的使用位置当我检查模块simpletreemodel时,我看到:

    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\
Run Code Online (Sandbox Code Playgroud)

这个模块应该做什么?谢谢

Ult*_*nct 13

您看到的是.qrc文件包含的资源的逐字节转储.您没有显式访问模块内的对象.只需导入它,您就可以按原始名称(和路径)访问这些资源,但前面有冒号.

pixmap = QPixMap(':/images/filename.jpg')
Run Code Online (Sandbox Code Playgroud)

更新:QRC文件是一个XML文件,如下所示:

<RCC>
  <qresource prefix="/images">
    <file alias='filename.jpg'>images/filename.jpg</file>
  </qresource>
</RCC>
Run Code Online (Sandbox Code Playgroud)

然后生成它,使用:

pyrcc4 -o images_rc.py images.qrc
Run Code Online (Sandbox Code Playgroud)

  • 它是可选的.就像我们将图像字节"嵌入"在应用程序本身中,而不是从磁盘读取. (3认同)