Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何编译qrc文件并将其导入程序?_Python_Pyqt_Pyqt4_Resource Files - Fatal编程技术网

Python 如何编译qrc文件并将其导入程序?

Python 如何编译qrc文件并将其导入程序?,python,pyqt,pyqt4,resource-files,Python,Pyqt,Pyqt4,Resource Files,导入资源文件时遇到问题。我正在monkey studio中使用pyqt4,我正在尝试导入png图像。当我运行该程序时,会出现如下导入错误 导入错误:没有名为icon\u rc的模块 我知道我必须用pyrcc4来编译它,但我不知道该怎么做,请任何人帮忙。如果有一个完整的答案来解释如何编译资源文件,以便我可以导入它,那将非常有帮助。这里真的没有什么要解释的,您有一个资源文件(例如icon.qrc),然后调用pyrcc4-o icon\u rc.py icon.qrc,它将创建一个模块icon\u r

导入资源文件时遇到问题。我正在monkey studio中使用pyqt4,我正在尝试导入png图像。当我运行该程序时,会出现如下导入错误

导入错误:没有名为icon\u rc的模块


我知道我必须用pyrcc4来编译它,但我不知道该怎么做,请任何人帮忙。如果有一个完整的答案来解释如何编译资源文件,以便我可以导入它,那将非常有帮助。

这里真的没有什么要解释的,您有一个资源文件(例如
icon.qrc
),然后调用
pyrcc4-o icon\u rc.py icon.qrc
,它将创建一个模块
icon\u rc.py
,然后可以将其导入到项目中

所有这些都有文档记录。

打开cmd(或*nix上的终端)并运行


它成功地编译了文件,我能够将py文件导入到我的项目中,并且运行它没有问题。

在Pyqt5中,可以使用该命令
Pyrcc5 input_file.qrc-o Out_file.py


我们需要将该qrc文件转换为python文件,然后将其导入到您的代码中

您可以尝试使用pyside,如:


---
pyside rcc-o input.qrc output.py

这是因为当您还使用pyuic5将UI转换为py时,UI中的资源文件名会固定

然后使用

Pyrcc5 input_file.qrc -o icons.py
从main_script.py中删除

import icon_rc
和使用

import icons
当从图标模块调用实际图标时,必须查看qrc文件前缀

< RCC >
    < qresource
    prefix = "ico5" >
    < file > plugin.png < / file >
    < / qresource >
< / RCC >
如果前缀是

<RCC>
    <qresource prefix="icons">

我只是不能将这个qrc文件转换成py模块。当我在cmd pyrc4-o icon_rc.py icon.qrc中使用代码时,它会说pyrc4:File不存在‘icon.qrc’,并且,当您运行命令时,它是否存在于目录中?啊,好的,所以我设法编译它并将其导入到我的项目中,但现在它抛出了一个新错误!文件“”,第89行,在文件“F:\computing\Payrollv22\icon_rc.py”第300行,在qInitResources()文件“F:\computing\Payrollv22\ritch_rc.py”第295行,在qInitResources QtCore.qRegisterResourceData(0x01,str(qt_资源结构),str(qt_资源名称),str(qt资源数据))类型错误:qRegisterResourceData(int,str,str,str,str,str):参数2具有意外类型“str”。值得指出的是,只有在使用Python 3.x时才需要使用
-py3
开关。如果您使用的是Python 2.x,则需要在不使用此附加开关的情况下编译资源文件。@0x8BADF00D,
-py3
标志将生成一个与任何Python 2.6或更高版本兼容的文件,因此除非您使用的是真正古老的Python版本,您应该始终使用
-py3
进行将来的验证pyside与pyqt4不同是的,但这只是另一个选项。
 QtGui.QIcon(":/ico5/plugin.png")
<RCC>
    <qresource prefix="icons">
  QtGui.QIcon(":/icons/plugin.png")