1

我的应用程序中有这个结构:

|-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"))
4

1 回答 1

7

使用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)中提供资源?)。

于 2012-08-07T18:44:47.897 回答