如何使用PyQt加载图像资源?

2024-04-24 03:36:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我的应用程序中有以下结构:

|-App
|
|-functions
|
|-ui
|--ui.py
|    
|images
|
|main.py

我有一个包含一些脚本的functions文件夹,还有一个包含ui.py文件中PyQt生成代码的ui文件夹

以及一个main.py文件,该文件加载ui.py以显示界面,ui.py从根目录上的“images”文件夹加载一些图像

如果我直接在python上执行脚本(main.py文件上的double-clic),图像将不会显示

但是,如果我使用带有“python main.py”的终端,则图像显示正确

ui.py上的引用如下所示:

icon.addPixmap(QtGui.QPixmap(_fromUtf8("images/flags/MXN.png"))

Tags: 文件代码py图像脚本文件夹app应用程序
1条回答
网友
1楼 · 发布于 2024-04-24 03:36:38

使用Qt Designer Resource System为图像创建资源文件

然后使用PyQt's pyrcc tool将Qt资源文件转换为python模块

注意:python资源模块应该与ui文件位于同一目录中。因此,如果您在Qt Designer中创建了资源文件App/resources.qrc,则应将其转换为以下格式:

pyrcc5 -o App/ui/resources_rc.py App/resources.qrc

PySide(Qt4)的等效工具是pyside-rcc。对于PySide2/PySide6,Qtrcc工具本身有一个生成python输出的选项:

rcc -g python -o App/ui/resources_rc.py App/resources.qrc

更新

PyQt6现在已删除pyrcc工具(请参阅:How can resources be provided in PyQt6 (which has no pyrcc)?

相关问题 更多 >