Кто работал с Qt Designer помогите пожалуйста
В общем я сделал в Qt Designer макет для проги, конвертировал файл interface.ui в test.py, но при запуске test.py обнаружил ошибку вида:
Я не могу понять что это за модули и раз уж они создались, то для чего. Лишь по их названиям могу сказать,что когда я создавал PushButton в одном из tabWidget окне, мне надо было вложить в них картинки и приходилось для этого создавать специальные файлы расширения .qrc, чтобы благодаря им поместить картинку в PushButton. Вот как это выглядит:
Я попробовал убрать эти импорты и оно запустилось, но без картинок и со сбитым интерфейсом..
Кто может подсказать, буду рад любой помощи)
Весь код большой, поэтому я взял только те места где использую эти картинки. Если что картинки находяться в той же директории что и файлы interface.ui и test.py.
Вот упрощенный код:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.setEnabled(True)
Form.resize(599, 569)
self.tabWidget = QtWidgets.QTabWidget(Form)
self.tabWidget.setEnabled(True)
self.tabWidget.setGeometry(QtCore.QRect(0, 0, 601, 571))
self.tabWidget.setStyleSheet("background-image: url(:/newPrefix/MAIN.png);\n"
"font: 11pt \"Times New Roman\";\n"
"background-color: rgb(255, 255, 127);\n"
"\n"
"color: rgb(0, 0, 0);")
.................
self.tab_3.setObjectName("tab_3")
self.pushButton_4 = QtWidgets.QPushButton(self.tab_3)
self.pushButton_4.setGeometry(QtCore.QRect(10, 30, 211, 161))
self.pushButton_4.setStyleSheet("image: url(:/newPrefix/Темпераметр.jpg);")
self.pushButton_4.setText("")
self.pushButton_4.setObjectName("pushButton_4")
self.pushButton_5 = QtWidgets.QPushButton(self.tab_3)
self.pushButton_5.setGeometry(QtCore.QRect(10, 200, 211, 141))
self.pushButton_5.setStyleSheet("image: url(:/newPrefix/stress.jpg);")
self.pushButton_5.setText("")
self.pushButton_5.setObjectName("pushButton_5")
self.pushButton_6 = QtWidgets.QPushButton(self.tab_3)
self.pushButton_6.setGeometry(QtCore.QRect(10, 350, 211, 161))
self.pushButton_6.setStyleSheet("image: url(:/newPrefix/IQ.jpg);")
self.pushButton_6.setText("")
..................
import IQ_rc
import MAIN_rc
import Stres_rc
import spr_rc
import temp_rc
import test_rc
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())
Ответы (1 шт):
Вам не надо создавать отдельные файлы ресурсов для каждой картинки.
Создайте один файл, например my_resources.qrc и туда добавьте все изображения.
После чего у вас появится файл my_resources.qrc а в нем:
<!DOCTYPE RCC><RCC version="1.0">
<qresource prefix='/'>
<file>img/lena.png</file>
<file>img/pyqt.jpg</file>
<file>img/red.png</file>
<file>img/bad.png</file>
</qresource>
</RCC>
у меня изображения лежат в папке img у вас newPrefix.
Далее вы конвертируете .ui в .py
ВАЖНО! Далее вы конвертируете .qrc в .py
pyrcc5 my_resources.qrc -o my_resources_rc.py
и полученный my_resources_rc.py у вас импортируется import my_resources_rc
Вот после этого можете запускать приложение.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.setEnabled(True)
Form.resize(599, 569)
self.tabWidget = QtWidgets.QTabWidget(Form)
self.tabWidget.setEnabled(True)
self.tabWidget.setGeometry(QtCore.QRect(0, 0, 601, 571))
self.tabWidget.setStyleSheet("background-image: url(:/img/lena.png);\n"
"background-position: center;\n"
"background-repeat: no-reperat;\n"
"font: 11pt \"Times New Roman\";\n"
"background-color: rgb(255, 255, 127);\n"
"\n"
"color: rgb(0, 0, 0);")
#.................
self.tab_3 = QtWidgets.QWidget(Form) # + ?
self.tab_3.setObjectName("tab_3")
self.pushButton_4 = QtWidgets.QPushButton(Form) #(self.tab_3)
self.pushButton_4.setGeometry(QtCore.QRect(10, 30, 211, 161))
self.pushButton_4.setStyleSheet("""QPushButton {
background-image: url(:/img/pyqt.jpg);
background-position: center;
background-repeat: no-reperat;
}""") # background-image:
# self.pushButton_4.setText("")
self.pushButton_4.setObjectName("pushButton_4")
self.pushButton_5 = QtWidgets.QPushButton(Form) #(self.tab_3)
self.pushButton_5.setGeometry(QtCore.QRect(10, 200, 211, 141))
self.pushButton_5.setStyleSheet("background-image: url(:/img/red.png); background-repeat: no-reperat;background-position: center;")
self.pushButton_5.setText("")
self.pushButton_5.setObjectName("pushButton_5")
self.pushButton_6 = QtWidgets.QPushButton(Form) #(self.tab_3)
self.pushButton_6.setGeometry(QtCore.QRect(10, 350, 211, 161))
self.pushButton_6.setStyleSheet("background-image: url(:/img/bad.png); background-repeat: no-reperat;background-position: center;")
self.pushButton_6.setText("")
#..................
import my_resources_rc
#import IQ_rc
#import MAIN_rc
#import Stres_rc
#import spr_rc
#import temp_rc
#import test_rc
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())



