将相对图像路径绑定到* .py文件

时间:2015-10-31 17:37:05

标签: python qt pyqt

我试图创建包含图像目录的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从父目录启动它不会工作。

有没有办法将图像绑定到源文件,而不使用硬编码完整图像路径?

1 个答案:

答案 0 :(得分:2)

import os

path = os.path.dirname(os.path.abspath(__file__))
lbl.setPixmap(QPixmap(os.path.join(path, 'icon.png')))