https://ke.qq.com/course/5575378#term_id=105768924
我的应用程序中有这个结构:
- |-App
- |
- |-functions
- |
- |-ui
- |--ui.py
- |
- |images
- |
- |main.py
我有一个带有一些脚本的函数文件夹和一个带有 PyQt 在 ui.py 文件上生成的代码的 ui 文件夹。
和一个 main.py 文件,它加载 ui.py 以显示界面,ui.py 从根目录的“images”文件夹中加载一些图像。
如果我直接在 python 上执行我的脚本(在 main.py 文件上双击),图像将不会显示..
但是,如果我使用带有“python main.py”的终端,图像会正确显示。
ui.py 上的引用如下:
icon.addPixmap(QtGui.QPixmap(_fromUtf8("images/flags/MXN.png"))
使用Qt Designer 资源系统为图像创建资源文件。
然后使用PyQt 的 pyrcc 工具将 Qt 资源文件转换为 python 模块。
注意:python 资源模块应该与您的 ui 文件位于同一目录中。所以如果你App/resources.qrc在 Qt Designer 中创建了资源文件,你应该像这样转换它:
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 工具(请参阅:如何在 PyQt6(没有 pyrcc)中提供资源?)。
python - How to load image resources with PyQt? - Stack Overflow