У меня ошибка AttributeError: 'Ui_MainWindow' object has no attribute 'ui'
У меня ошибка AttributeError: 'Ui_MainWindow' object has no attribute 'ui'.
Код кроме про фото точно рабочий. Если что делаю для школы.
import sys
from design import *
from PyQt5 import QtCore, QtGui, QtWidgets
class MyWin(QtWidgets.QMainWindow):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.setEnabled(True)
MainWindow.resize(990, 500)
MainWindow.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(330, 40, 120, 50))
self.pushButton.setObjectName("pushButton")
self.textBrowser = QtWidgets.QLineEdit(self.splitter_2)
self.textBrowser.setObjectName("textBrowser")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
#Тут все про картинки
self.photo = QtWidgets.QLabel(self.centralwidget)
self.photo.setGeometry(QtCore.QRect(480, 41, 480, 270))
self.photo.setText("")
self.photo.setPixmap(QtGui.QPixmap('self.ui.plainTextEdit.setText(i)' + ".png"))
self.photo.setScaledContents(True)
self.photo.setObjectName("photo")
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
myapp = MyWin()
myapp.show()
sys.exit(app.exec_())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Всегда запускайте свое приложение с консоли/терминала/CMD и вы получите реальную ошибку, если она у вас есть.
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
#from design import *
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.setEnabled(True)
MainWindow.resize(990, 500)
MainWindow.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
# Найти год
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(40, 20, 120, 20))
self.label.setObjectName("label")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(330, 40, 120, 50))
self.pushButton.setObjectName("pushButton")
# Окно вывода
self.splitter = QtWidgets.QSplitter(self.centralwidget)
self.splitter.setGeometry(QtCore.QRect(40, 110, 410, 200))
self.splitter.setOrientation(QtCore.Qt.Vertical)
self.splitter.setObjectName("splitter")
self.label_2 = QtWidgets.QLabel(self.splitter)
self.label_2.setObjectName("label_2")
self.plainTextEdit = QtWidgets.QTextBrowser(self.splitter)
self.plainTextEdit.setObjectName("plainTextEdit")
# Ввод
self.splitter_2 = QtWidgets.QSplitter(self.centralwidget)
self.splitter_2.setGeometry(QtCore.QRect(40, 40, 300, 50))
self.splitter_2.setOrientation(QtCore.Qt.Horizontal)
self.splitter_2.setObjectName("splitter_2")
self.textBrowser = QtWidgets.QLineEdit(self.splitter_2)
self.textBrowser.setObjectName("textBrowser")
self.label_3 = QtWidgets.QLabel(self.splitter_2)
self.label_3.setObjectName("label_3")
self.label_4 = QtWidgets.QLabel(self.splitter_2)
self.label_4.setObjectName("label_4")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.photo = QtWidgets.QLabel(self.centralwidget)
self.photo.setGeometry(QtCore.QRect(480, 41, 480, 270))
self.photo.setText("")
self.photo.setScaledContents(True)
self.photo.setObjectName("photo")
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Проект"))
self.label.setText(_translate("MainWindow", "Найти год "))
self.pushButton.setText(_translate("MainWindow", "Найти"))
self.label_2.setText(_translate("MainWindow", "Ответ:"))
class MyWin( QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.ui.pushButton.clicked.connect(self.myFunction)
def myFunction(self):
a = self.ui.textBrowser.text()
line = '''
2018 — Избрание 4-го Президента РФ Владимира Путина на второй срок (суммарно – четвёртый). Пожар в \
торгово-развлекательном центре «Зимняя вишня» в Кемерово 25-26 марта 2018 года. Открытие автомобильной части Крымского \
моста. Чемпионат мира по футболу 2018 года в России. Массовое убийство в Керченском политехническом колледже. Пенсионная \
реформа в России (2019—2028). РПЦ разрывает евхаристическое общение с Константинопольским патриархатом из-за ситуации с \
предоставлением автокефалии православной церкви на Украине.
2019 — Увеличение основной ставки НДС до 20 %. Переход с аналогового телевещания на цифровое. Открытие железнодорожной \
части Крымского моста. Пожар на АС-31 1 июля 2019 года.
2020-2022 — Пандемия коронавируса COVID-19.
2020 — Владимир Путин предложил конституционную реформу, реализованную через всероссийское голосование, правительство \
Дмитрия Медведева ушло в отставку, новым премьер-министром назначен Михаил Мишустин; назначены члены нового \
правительства.
2021 — Выборы в Государственную думу VIII созыва. Всероссийская перепись населения 2021 года. Массовые убийства в \
учебных заведениях в Казани и в Перми.
'''
b = '''Год или слово не найдено'''
for i in line.split('\n'):
if a in i:
self.ui.plainTextEdit.setText(i)
#Вот тут самая главная проблема
c = (a + '.png')
# AttributeError: 'MyWin' object has no attribute 'photo'
# self.photo.setPixmap(QtGui.QPixmap(c))
self.ui.photo.setPixmap(QtGui.QPixmap(c)) # !!! +++
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
myapp = MyWin()
myapp.show()
sys.exit(app.exec_())
