Как добавить фотографию в pyqt5 для конвертации в exe формат
Я пользуюсь qt5 графическим редактором для python. Мне нужно добавить фотографию, как background. Но я столкнулся с проблемой при использование обычного label с путём файла, при конвертации файла в exe формат с помощью pyinstaller фото просто нет.
Я помню, что можно это было как-то сделать через qrc, но я пишу код вручную и не знаю, как это правильно можно реализовать. Вот как выглядит строчки на label. +++ это в класс виджета. Ресурс файл есть. Всё в корне.
import resources
pixmap = QPixmap("ZeXsPua_AKU.png")
Ответы (2 шт):
Вам надо добавить к проекту файл ресурсов. например resources.qrc
<RCC>
<qresource prefix="newPrefix">
<file>picture.png</file>
</qresource>
</RCC>
который потом надо конвертнуть pyrcc5 -o resources.py resources.qrc
и использовать в таком виде
import resources
...
pixmap = QPixmap(":/newPrefix/picture.png")
В комментах можно долго писать. Для простоты давайте так. простейший пример.
у меня в одном каталоге лежат: test.py, image.png, resources.qrc сама программа test.py
import sys
from PyQt5.QtWidgets import (QWidget, QHBoxLayout, QLabel, QApplication)
from PyQt5.QtGui import QPixmap
import resources
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
hbox = QHBoxLayout(self)
pixmap = QPixmap(":/newPrefix/image.png")
lbl = QLabel(self)
lbl.setPixmap(pixmap)
hbox.addWidget(lbl)
self.setLayout(hbox)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
файл ресурсов resources.qrc такого вида:
<RCC>
<qresource prefix="newPrefix">
<file>image.png</file>
</qresource>
</RCC>
для начала запускаем pyrcc5 -o resources.py resources.qrc и получаем в этом же каталоге модуль resources.py
теперь я могу сделать exe и передать на другой комп: pyinstaller --onefile test.py