Ошибка Qt Designer с ошибкой бросания Python при попытке загрузить изображение - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь загрузить логотип в интерфейс скриптов Python. Я использую Qt Designer и создал ярлык и установил растровое изображение на изображение. Изображение отлично загружается в конструкторе, но когда я импортирую файл пользовательского интерфейса в скрипт Python, я получаю это сообщение об ошибке

C:\Users\Mason\AppData\Local\Continuum\anaconda3\python.exe "C:/Users/Mason/PycharmProjects/Inspector/Tester/main.py"
Traceback (most recent call last):
  File "C:/Users/Mason/PycharmProjects/Inspector/Tester/main.py", line 9, in <module>
    UIClass, QtBaseClass = uic.loadUiType("ui5.ui")
  File "C:\Users\Mason\AppData\Local\Continuum\anaconda3\lib\site-packages\PyQt5\uic\__init__.py", line 201, in loadUiType
    exec(code_string.getvalue(), ui_globals)
  File "<string>", line 30
    import 3_rc

Я все еще получаю эту ошибку, даже если я вынимаю изображение из файла пользовательского интерфейса и перезагружаю его. Что я делаю неправильно?

from PyQt5 import QtCore, uic, QtWidgets
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import QApplication, QDialog
from PyQt5.uic import loadUi
from PyQt5.QtGui import QIcon, QPixmap
import sys


UIClass, QtBaseClass = uic.loadUiType("ui5.ui")

class MyApp(UIClass, QtBaseClass):
    def __init__(self):
        UIClass.__init__(self)
        QtBaseClass.__init__(self)
        self.setupUi(self)
        self.pushButton.clicked.connect(self.on_pushbutton_click)



if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    window = MyApp()
    window.show()
    sys.exit(app.exec_())

1 Ответ

0 голосов
/ 03 мая 2019

Qt использует систему ресурсов для изображений и других ресурсов.Когда вы добавляете изображение в Qt Designer, оно создает файл ресурсов.Вы должны преобразовать этот файл ресурсов, как и в пользовательском интерфейсе (uic - это ярлык для этого процесса ).Автоматически сгенерированный файл пользовательского интерфейса, который вы получаете с uic, ищет этот файл ресурсов, но не может его найти.

Вы можете конвертировать ваш файл ресурсов в python с этим, в зависимости от вашей версии qt: pyrcc5 -o 3_rc.py your_resource_file_here.qrc

Дополнительная информация:

...