Pyinstaller и Pyqt как впихнуть в приложение каhтинку которая используется в качестве иконки кнопки

Я создал приложение где впихиваю в кнопку изображение, я пытался найти решение моей проблемы, но каждый раз появлялись новые проблемы, до того что изображение перестаёт загружаться, до каких-то ошибок во время компиляции, пожалуйста! расскажите универсальный метод компиляции в exe приложение где используются картинки! Буду очень благодарен! ps создавал с помощью qtDesigner

from PyQt5 import QtCore, QtGui, QtWidgets

ison = ['qw.bmp', 'qx.bmp']

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(461, 448)
        self.MainWindow_2 = QtWidgets.QWidget(MainWindow)
        self.MainWindow_2.setObjectName("MainWindow_2")
        self.gridLayoutWidget = QtWidgets.QWidget(self.MainWindow_2)
        self.gridLayoutWidget.setGeometry(QtCore.QRect(10, 80, 441, 351))
        self.gridLayoutWidget.setObjectName("gridLayoutWidget")
        self.Grid = QtWidgets.QGridLayout(self.gridLayoutWidget)
        self.Grid.setContentsMargins(0, 0, 0, 0)
        self.Grid.setObjectName("Grid")
        self.Go = QtWidgets.QPushButton(self.MainWindow_2)
        self.Go.setGeometry(QtCore.QRect(190, 20, 71, 41))
        self.Go.setObjectName("Go")
        self.Go.clicked.connect(self.Begin)

    def Begin(self):
        for i in range(1,6):
            for j in range(1, 6):
                c = choice(ison) 
                button = QtWidgets.QPushButton('')
                button.setIcon(QtGui.QIcon(c))
                self.Grid.addWidget(button, i,j)

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

Вот ui

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>461</width>
    <height>448</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="MainWindow_2">
   <widget class="QWidget" name="gridLayoutWidget">
    <property name="geometry">
     <rect>
      <x>10</x>
      <y>80</y>
      <width>441</width>
      <height>351</height>
     </rect>
    </property>
    <layout class="QGridLayout" name="Grid"/>
   </widget>
   <widget class="QPushButton" name="Go">
    <property name="geometry">
     <rect>
      <x>190</x>
      <y>20</y>
      <width>71</width>
      <height>41</height>
     </rect>
    </property>
    <property name="text">
     <string>Стартуем!</string>
    </property>
   </widget>
 </widget>
 <resources/>
 <connections/>
</ui>

Ответы (1 шт):

Автор решения: Mrage

Лучший способ реализовать то, что вы хотите, это предварительно упаковать ваши картинки в ресурсы Qt Designer(такая панелька справа снизу) Qt Designer

Добавьте категорию для ресурсов, добавьте внутрь ресурс, сохраните файлы в ui(включая файл ресурсов в qrc), скомпилируйте как обычно. Подключение с использованием ресурсов:

QtGui.QIcon(":/категория/имяизображения.формат")
→ Ссылка