Найти тему
SergSergius

Программа в python PyQT5 с картинкой компилируемой в exe

По умолчанию, когда в код питона прописывают ссылки на изображения, при сборке кода в программу exe, изображения остаются за бортом программы, и, если попробовать запустить такой exe-шник без соответствующих изображений, то он выдаст ошибку.

Однако, есть способ как запихнуть изображение внутрь программы, чтобы не перекидывать кому-либо кучу файлов для запуска. Для этого необходимо превратить файл изображения в текст. Но не просто текст, а кодированный. Т. е. сначала зашифровать, а потом дешифровать внутри основного кода программы и использовать как изображение.

Возьмем картинку:

Теперь создадим текстовый файл ресурса, например 1.qrc (формат файла .qrc – это важно!), который мы затем сконвертируем в, понимаемый средой питон, файл формата .py. Содержание файла следующее:

<RCC>
<qresource prefix=”/”>
<file>f1.jpg</file>
</qresource>
</RCC>

Здесь, в строчке: <qresource prefix=”/”> обозначено, что путь к картинке разделяется знаком «/». Строчка ниже содержит путь до выбранного файла. В моем случае он в одной папке с основным кодом программы и назван f1.jpg.

Далее, в терминале например PyCharmа наберем команду:

pyrcc5 1.qrc –o ima.py

Это значит, что с помощью преобразователя pyrcc ресурс 1.qrc со ссылкой на наше изображение будет преобразован в исполняемый питон-скрипт ima, формата .py, который после выполнения команды вы сможете обнаружить в папке с ресурсом.

Итак, у нас есть ресурс формата .py с картинкой (все ссылки на файлы будут ниже, ибо текст ресурса огромен). Теперь нам нужна собственно программа, где эта фича реализована.

Создал я одну такую странную программу. Интерфейс ее представлен на изображениях ниже.

-2

-3

Ее код с описанием вы можете посмотреть в полной статье: https://sergsergius.ru/%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%b0-%d0%b2-pyqt5-%d1%81-%d0%ba%d0%b0%d1%80%d1%82%d0%b8%d0%bd%d0%ba%d0%be%d0%b9-%d0%ba%d0%be%d0%bc%d0%bf%d0%b8%d0%bb%d0%b8%d1%80%d1%83%d0%b5%d0%bc/