我试图创建包含图像目录的PyQt应用程序。问题是,如果我尝试使用它的相对路径加载图像,它的结果将取决于应用程序将从哪个目录开始。
例如,我的项目具有以下结构:
qttest/
├── gui.py
└── icon.png
gui.py来源:
import sys
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel
app = QApplication(sys.argv)
main = QMainWindow()
lbl = QLabel()
lbl.setPixmap(QPixmap("icon.png"))
main.setCentralWidget(lbl)
main.show()
sys.exit(app.exec_())
现在,如果我尝试使用python3 gui.py
从项目目录启动它,它将成功加载图像并显示它,但是如果我将使用python3 qttest/gui.py
从父目录启动它不会工作。
有没有办法将图像绑定到源文件,而不使用硬编码完整图像路径?
答案 0 :(得分:2)
import os
path = os.path.dirname(os.path.abspath(__file__))
lbl.setPixmap(QPixmap(os.path.join(path, 'icon.png')))