将相对图像路径绑定到 *.py 文件
Bind relative image path to *.py file
我正在尝试创建包含图像目录的 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
从父目录启动它,它不会'没用。
有没有什么方法可以将图像绑定到使用它的源文件,而无需对完整图像路径进行硬编码?
import os
path = os.path.dirname(os.path.abspath(__file__))
lbl.setPixmap(QPixmap(os.path.join(path, 'icon.png')))
我正在尝试创建包含图像目录的 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
从父目录启动它,它不会'没用。
有没有什么方法可以将图像绑定到使用它的源文件,而无需对完整图像路径进行硬编码?
import os
path = os.path.dirname(os.path.abspath(__file__))
lbl.setPixmap(QPixmap(os.path.join(path, 'icon.png')))