从 .qrc 文件编译的 .py 文件(使用 pyside-rcc)无法工作

5 投票
1 回答
9049 浏览
提问于 2025-04-17 22:58

我正在做一个Python项目,但我的.py文件从.qrc文件编译过来后出现了问题。首先,我简单介绍一下我的项目。

我在QtDesigner中创建了项目的图形界面(GUI),并在界面中使用了图片。然后,我用pyside-uic把.ui文件生成了.py文件,又用pyside-rcc把.qrc文件生成了.py文件。问题是,当我使用这个.py文件(一个图片文件)时,界面上并没有显示图片。

有没有人知道怎么解决这个问题?

谢谢大家的回答。:)

附注:我使用PySide作为我的图形界面语言。

1 个回答

7

你真的把资源添加到你的图形界面项目里了吗?

如果你是从头开始,这里有个简单的步骤:

在Qt Designer里,选择“视图” > “资源浏览器”。然后在资源浏览器中,点击“编辑资源”按钮。接下来,你可以创建一个新的资源文件,或者打开一个已有的资源文件。重要的是,资源文件必须能通过相对路径访问资源(比如图片文件)。这意味着这些资源文件要么和资源文件在同一个文件夹里,要么在它的子文件夹里。

创建好资源文件后,使用右侧面板下方的按钮添加一个前缀(比如“images”),然后添加你的图片(或者其他资源),最后点击确定。

现在,当你想在标签上添加一个图像时,只需确保从你新创建的资源中选择图片,而不是从硬盘上的文件选择。

最后的步骤是使用pyside-uic重新生成你的图形界面模块,并使用pyside-rcc生成资源模块。做这个的时候,要确保资源模块保存为“resource_rc.py”,并且和图形界面模块在同一个文件夹里:

    pyside-uic -o widget.py widget.ui
    pyside-rcc -o resource_rc.py resource.qrc

(顺便说一下,如果你的项目中使用了包,你应该在使用pyside-uic时加上--from-imports选项,以便获得相对导入)。

撰写回答