Я пытаюсь создать PyQt-приложение, содержащее каталог с изображениями. Проблема в том, что если я пытаюсь загрузить изображение, используя его относительный путь, результат будет зависеть от текущего каталога, из которого будет запущено приложение.Связать относительный путь изображения к * .py файлу
Например, я имею проект со следующей структурой:
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
, он не будет работать.
Есть ли способ связать изображение с исходным файлом, где он используется без жесткого кодирования пути полного изображения?
Вы можете [получить путь к исходному файлу py] (http://stackoverflow.com/a/7162404/1771479). – agold
Вы можете использовать [Qt Resource Sysytem] (http://stackoverflow.com/a/11852147/984421). Это позволит вам сделать это, например. 'QPixmap ("QRC: /icon.png")'. – ekhumoro