我很难让应用程序中的图标在运行时可见。我已经尝试了所有可以搜索的方法,但仍然不知道出了什么问题。我当前的目录如下所示:
myapp/
├─ main.py
├─ icons_rc.py
├─ ui_window.py
├─ window.ui
├─ icons.qrc
├─ icons/
│ ├─ icon1.png
| ├─ ...
| ├─ iconN.png
icons_rc.py
文件是使用命令 pyrcc5 icons.qrc -o icons_rc.py
生成的,并将其导入到 main.py
和 ui_window.py
。
在QtDesigner中生成的
icons.qrc
文件如下:
<RCC>
<qresource prefix="/">
<file>icons/icon1.png</file>
...
<file>icons/iconN.png</file>
</qresource>
</RCC>
我尝试再次生成
.qrc
文件,将其放入 icons
文件夹中,更改文件的前缀,并广泛查看有关如何逐步执行此操作的教程,但我仍然不知道我做错了什么。
在我的项目中忽略这个特定问题几个月后,我终于能够解决它了!我所做的是将“icons”部分添加到前缀,并使用 pyside-rcc 将 .qrc 文件转换为 icons_rc.py,遵循 PyQt 文档页面
中的教程对于 Python 爱好者 PYQT5 和 PYQT6,我知道你会来这里,记住在编译或设计时,你必须使用 MEI PASS 告诉可执行文件在临时文件夹中查找图标,而不是 exe 位置
executable_dir = getattr(sys, '_MEIPASS', os.path.abspath(os.path.dirname(sys.argv[0])))