当我尝试加载图像时,Qt Designer 错误与 Python 抛出错误
Posted
技术标签:
【中文标题】当我尝试加载图像时,Qt Designer 错误与 Python 抛出错误【英文标题】:Qt Designer error with Python throwing error when I try to load image 【发布时间】:2019-05-03 15:17:55 【问题描述】:我正在尝试将徽标加载到 python 脚本 UI 中。我正在使用 Qt Designer,我创建了一个标签并将 pixmap 设置为图像。图像在设计器中加载良好,但是当我将 ui 文件导入 python 脚本时,我收到此错误消息
C:\Users\Mason\AppData\Local\Continuum\anaconda3\python.exe "C:/Users/Mason/PycharmProjects/Inspector/Tester/main.py"
Traceback (most recent call last):
File "C:/Users/Mason/PycharmProjects/Inspector/Tester/main.py", line 9, in <module>
UIClass, QtBaseClass = uic.loadUiType("ui5.ui")
File "C:\Users\Mason\AppData\Local\Continuum\anaconda3\lib\site-packages\PyQt5\uic\__init__.py", line 201, in loadUiType
exec(code_string.getvalue(), ui_globals)
File "<string>", line 30
import 3_rc
即使我从 ui 文件中取出图像并重新加载它,我仍然会收到该错误。我究竟做错了什么?
from PyQt5 import QtCore, uic, QtWidgets
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import QApplication, QDialog
from PyQt5.uic import loadUi
from PyQt5.QtGui import QIcon, QPixmap
import sys
UIClass, QtBaseClass = uic.loadUiType("ui5.ui")
class MyApp(UIClass, QtBaseClass):
def __init__(self):
UIClass.__init__(self)
QtBaseClass.__init__(self)
self.setupUi(self)
self.pushButton.clicked.connect(self.on_pushbutton_click)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
window = MyApp()
window.show()
sys.exit(app.exec_())
【问题讨论】:
你能贴出你用来在标签中加载图像的代码吗? 刚刚添加了一些代码。 .ui 文件由 Qt Designer 自动生成。 【参考方案1】:Qt 依赖于图像和其他资产的资源系统。当您在 qt 设计器中添加图像时,它会创建一个资源文件。您必须转换该资源文件,就像使用 ui 文件一样(uic
是快捷方式to this process)。您使用 uic
获得的自动生成的 ui 文件正在寻找该资源文件,但找不到。
你可以用这个将你的资源文件转换为 python,这取决于你的 qt 版本:
pyrcc5 -o 3_rc.py your_resource_file_here.qrc
更多信息:
相关问题:Importing resource file to PyQt code? https://www.riverbankcomputing.com/static/Docs/PyQt4/resources.html https://www.riverbankcomputing.com/static/Docs/PyQt5/resources.html【讨论】:
是的,这行得通。谢谢你的提示。如果您使用的是 PyQT5,则仅供阅读本文的其他人参考,一旦您将代码从 ui 转换为 .py,则必须从代码中删除名为 import 3_rc 的行。您还必须将以上是关于当我尝试加载图像时,Qt Designer 错误与 Python 抛出错误的主要内容,如果未能解决你的问题,请参考以下文章
选择“选择资源...”时 Qt Designer 冻结(锁定)
PyQ5t:将 Qt Designer 加载到 Python 脚本中(loadUiType):如何检查错误原因?
Qt Designer 4.8 在 Mac OS X 10.7 上启动时崩溃