Как связать приложение pyqt5 для работы с ресурсами (чтобы добавить изображения в мой графический интерфейс)
Я хочу добавить изображения в мой PyQt5 GUI с помощью метода "resources", чтобы позже я мог использовать PyInstaller для создания кроссплатформенных.exe-файлов. До сих пор я добавлял свои изображения по пути к файлу (без использования файлов ресурсов.qrc и т. Д.), Но это плохо для PyInstaller и т. Д.
Ниже мои файлы.
Моя проблема в том, что когда я пытаюсь запустить main.py GUI... ничего не происходит. Я не получаю никаких сообщений об ошибках или чего-то... ничего.
Вот очень упрощенная (надуманный пример) версия того, что я хочу сделать:
Это мой файл main.py:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '.\main.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(241, 133)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(90, 20, 50, 50))
self.label.setMinimumSize(QtCore.QSize(0, 1))
self.label.setText("")
self.label.setPixmap(QtGui.QPixmap(":/icons/png/001-success.png"))
self.label.setScaledContents(True)
self.label.setObjectName("label")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 241, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
import icons_rc
это было сгенерировано из main.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>241</width>
<height>133</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>90</x>
<y>20</y>
<width>50</width>
<height>50</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>1</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="D:/HACKATHON/PyQt_resources/icons.qrc">:/icons/png/001-success.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>241</width>
<height>21</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources>
<include location="D:/HACKATHON/PyQt_resources/icons.qrc"/>
</resources>
<connections/>
</ui>
и вот файл icons.qrc:
<RCC>
<qresource>
<file>icons/png/001-success.png</file>
</qresource>
</RCC>
и из этого я сгенерировал файл с именем icons_rc.py, используя скрипт pyrcc.
Кто-нибудь знает, как заставить этот очень простой графический интерфейс работать. Это просто окно с одним изображением посередине...