Приложение не запускается: объект Engine не определено хотя везде задано ,
Помогите пожалуйста, программа не запускается пишет что имя Engine не определено хотя везде задано.
Как исправить ошибку?
WARNING: Any manual changes made to this file will be lost when pyuic5 is run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QFileDialog, QMessageBox, QApplication, QLineEdit, QMainWindow
from datetime import datetime
import sys
class MyWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.setEnabled(True)
MainWindow.resize(800, 608)
MainWindow.setStyleSheet("background-color:#22222e")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(220, 80, 301, 61))
self.lineEdit.setStyleSheet("background-color: #22222e;\n"
"border: 2px solid #6B8E23;\n"
"border-radius: 30;\n"
"color: white")
self.lineEdit.setObjectName("lineEdit")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(550, 80, 151, 61))
self.pushButton.setStyleSheet("QPushButton {\n"
" color: white;\n"
" background-color:#6B8E23;\n"
" border-radius: 30; \n"
"}\n"
"\n"
"QPushButton:pressed {\n"
"background-color: #90EE90\n"
"}")
self.pushButton.setObjectName("pushButton")
self.comboBox = QtWidgets.QComboBox(self.centralwidget)
self.comboBox.setGeometry(QtCore.QRect(220, 210, 311, 31))
self.comboBox.setStyleSheet("background-color: #22222e;\n"
"border: 2px solid #6B8E23;\n"
"border-radius: 30;\n"
"color: white")
self.comboBox.setObjectName("comboBox")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_2.setGeometry(QtCore.QRect(220, 300, 301, 61))
self.lineEdit_2.setStyleSheet("background-color: #22222e;\n"
"border: 2px solid #6B8E23;\n"
"border-radius: 30;\n"
"color: white")
self.lineEdit_2.setObjectName("lineEdit_2")
self.lineEdit_3 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_3.setGeometry(QtCore.QRect(220, 420, 311, 61))
self.lineEdit_3.setStyleSheet("background-color: #22222e;\n"
"border: 2px solid #6B8E23;\n"
"border-radius: 30;\n"
"color: white")
self.lineEdit_3.setObjectName("lineEdit_3")
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(300, 500, 151, 61))
self.pushButton_2.setStyleSheet("QPushButton {\n"
" color: white;\n"
" background-color:#6B8E23;\n"
" border-radius: 30; \n"
"}\n"
"\n"
"QPushButton:pressed {\n"
"background-color: #90EE90\n"
"}")
self.pushButton_2.setObjectName("pushButton_2")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(270, 50, 261, 20))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.label_3.setFont(font)
self.label_3.setStyleSheet("QLabel {\n"
" color: white;\n"
" border-radius: 30;\n"
"\n"
"}")
self.label_3.setObjectName("label_3")
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(240, 180, 261, 20))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.label_4.setFont(font)
self.label_4.setStyleSheet("QLabel {\n"
" color: white;\n"
" border-radius: 30;\n"
"\n"
"}")
self.label_4.setObjectName("label_4")
self.label_5 = QtWidgets.QLabel(self.centralwidget)
self.label_5.setGeometry(QtCore.QRect(230, 270, 261, 20))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.label_5.setFont(font)
self.label_5.setStyleSheet("QLabel {\n"
" color: white;\n"
" border-radius: 30;\n"
"\n"
"}")
self.label_5.setObjectName("label_5")
self.label_6 = QtWidgets.QLabel(self.centralwidget)
self.label_6.setGeometry(QtCore.QRect(250, 390, 261, 20))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.label_6.setFont(font)
self.label_6.setStyleSheet("QLabel {\n"
" color: white;\n"
" border-radius: 30;\n"
"\n"
"}")
self.label_6.setObjectName("label_6")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 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)
class Engine(QMainWindow, MyWindow):
def __init__(self) -> None:
super().__init__()
self.setupUi(self)
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButton.setText(_translate("MainWindow", "Выбрать файл"))
self.comboBox.setItemText(0, _translate("MainWindow", "Зашифровать"))
self.comboBox.setItemText(1, _translate("MainWindow", "Расшифровать"))
self.lineEdit_3.setText(_translate("MainWindow", "ваывавы"))
self.pushButton_2.setText(_translate("MainWindow", "Запустить"))
self.label_3.setText(_translate("MainWindow", "Введите имя файла"))
self.label_4.setText(_translate("MainWindow", " Выберите тип"))
self.label_5.setText(_translate("MainWindow", " Введите ключ от 1 до 90"))
self.label_6.setText(_translate("MainWindow", " Куда вывести"))
def __init__(self, parent=None):
super(MyWindow, self).__init__(parent)
self.lineedit = QLineEdit(self)
self.lineEdit_2 = QLineEdit()
self.lineEdit_3 = QLineEdit()
self.pushButton.clicked.connect(self.openFileNameDialog)
def openFileNameDialog(self):
options = QFileDialog.Options()
options |= QFileDialog.DontUseNativeDialog
global filelist
fileName, _ = QFileDialog.getOpenFileName(self, "Select Text file", "", "Text Files (*.txt)", options=options)
if not fileName:
fileName = None
print(fileName)
self.lineedit.setText(fileName)
def ciphering(self):
self.filename = self.lineedit.text()
self.optfilename = self.lineedit_2.text()
self.process = self.combo.currentText()
self.key = self.lineedit_3.text()
##########################
assert isinstance(self.key, object)
password_key = int(self.key)
store = ''
Letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz' \
'!@#$%&*(){}[]<>/\|";:\n-=+.,?0123456789'
now = datetime.now()
print(now)
option_1 = self.process
if option_1 == 'Зашифровать':
print('Ok Sir!..You Selected({0})'.format(option_1))
file = self.filename
if password_key == 0:
QMessageBox.critical(self, "Incorrect Encryption Key Entered",
"Please enter Encryption key in range of 1 - 90.")
else:
print("password key: ", password_key)
if file.endswith('.txt'):
try:
file = open(file, 'r').read()
print('Congratualtions output file saved.')
except:
print('Filename Error: Please! Enter File name in txt form/Enter correct address of file.')
for i in file:
if i in Letters:
number = Letters.find(i)
try:
number = number + int(password_key)
except:
print('Key Error: You Enter a Incorrect key.')
break
if number >= len(Letters):
number = number - len(Letters)
elif number < 0:
number = number + len(Letters)
store = store + Letters[number]
else:
store = store + i
save_file = open('{}.txt'.format(self.optfilename), 'w')
save_file.write(store)
save_file.close()
QMessageBox.about(self, "аптаптаптаптап.",
"птататптатпа {} апттпатаппт.".format(self.process))
else:
QMessageBox.critical(self, "тпата", "тпаттата.")
elif option_1 == 'Расшифровать':
print(' аптапаптпа({0})'.format(option_1))
file = self.filename
if password_key == 0:
QMessageBox.critical(self, "апркепр.")
else:
if file.endswith('.txt'):
try:
file = open(file, 'r').read()
print('успешно сохранено.')
except:
print('Ошибка файла: пж.')
for i in file:
if i in Letters:
number = Letters.find(i)
try:
number = number - int(password_key)
except:
print('Ошибка ключа: Ваш ключ не верный .')
break
if number >= len(Letters):
number = number - len(Letters)
elif number < 0:
number = number + len(Letters)
store = store + Letters[number]
else:
store = store + i
save_file = open('{}.txt'.format(self.optfilename), 'w')
save_file.write(store)
save_file.close()
QMessageBox.about(self, "Процесс завершился.",
"поздравляю {} успешно.".format(self.process))
else:
QMessageBox.critical(self, "Ошибка файла", "Введите txt форму .")
if __name__ == "__main__":
App = QApplication(sys.argv)
window = Engine()
window.show()
sys.exit(App.exec())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
НИКОГДА НЕ ИЗМЕНЯЙТЕ код, сгенерированный Qt Designer, НИКОГДА.
Создайте другой класс, который наследуется от соответствующего виджета, и используйте созданный класс для его заполнения.
Я не проверял логику вашего приложения, но пару ошибок исправил.
import sys
from datetime import datetime
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QFileDialog, QMessageBox, QApplication, \
QLineEdit, QMainWindow
class MyWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.setEnabled(True)
MainWindow.resize(800, 608)
MainWindow.setStyleSheet("background-color:#22222e")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(220, 80, 301, 61))
self.lineEdit.setStyleSheet("background-color: #22222e;\n"
"border: 2px solid #6B8E23;\n"
"border-radius: 30;\n"
"color: white")
self.lineEdit.setObjectName("lineEdit")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(550, 80, 151, 61))
self.pushButton.setStyleSheet("QPushButton {\n"
" color: white;\n"
" background-color:#6B8E23;\n"
" border-radius: 30; \n"
"}\n"
"\n"
"QPushButton:pressed {\n"
"background-color: #90EE90\n"
"}")
self.pushButton.setObjectName("pushButton")
self.comboBox = QtWidgets.QComboBox(self.centralwidget)
self.comboBox.setGeometry(QtCore.QRect(220, 210, 311, 31))
self.comboBox.setStyleSheet("background-color: #22222e;\n"
"border: 2px solid #6B8E23;\n"
"border-radius: 30;\n"
"color: white")
self.comboBox.setObjectName("comboBox")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_2.setGeometry(QtCore.QRect(220, 300, 301, 61))
self.lineEdit_2.setStyleSheet("background-color: #22222e;\n"
"border: 2px solid #6B8E23;\n"
"border-radius: 30;\n"
"color: white")
self.lineEdit_2.setObjectName("lineEdit_2")
self.lineEdit_3 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_3.setGeometry(QtCore.QRect(220, 420, 311, 61))
self.lineEdit_3.setStyleSheet("background-color: #22222e;\n"
"border: 2px solid #6B8E23;\n"
"border-radius: 30;\n"
"color: white")
self.lineEdit_3.setObjectName("lineEdit_3")
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(300, 500, 151, 61))
self.pushButton_2.setStyleSheet("QPushButton {\n"
" color: white;\n"
" background-color:#6B8E23;\n"
" border-radius: 30; \n"
"}\n"
"\n"
"QPushButton:pressed {\n"
"background-color: #90EE90\n"
"}")
self.pushButton_2.setObjectName("pushButton_2")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(270, 50, 261, 20))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.label_3.setFont(font)
self.label_3.setStyleSheet("QLabel {\n"
" color: white;\n"
" border-radius: 30;\n"
"\n"
"}")
self.label_3.setObjectName("label_3")
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(240, 180, 261, 20))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.label_4.setFont(font)
self.label_4.setStyleSheet("QLabel {\n"
" color: white;\n"
" border-radius: 30;\n"
"\n"
"}")
self.label_4.setObjectName("label_4")
self.label_5 = QtWidgets.QLabel(self.centralwidget)
self.label_5.setGeometry(QtCore.QRect(230, 270, 261, 20))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.label_5.setFont(font)
self.label_5.setStyleSheet("QLabel {\n"
" color: white;\n"
" border-radius: 30;\n"
"\n"
"}")
self.label_5.setObjectName("label_5")
self.label_6 = QtWidgets.QLabel(self.centralwidget)
self.label_6.setGeometry(QtCore.QRect(250, 390, 261, 20))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.label_6.setFont(font)
self.label_6.setStyleSheet("QLabel {\n"
" color: white;\n"
" border-radius: 30;\n"
"\n"
"}")
self.label_6.setObjectName("label_6")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 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"))
self.pushButton.setText(_translate("MainWindow", "Выбрать файл"))
self.comboBox.setItemText(0, _translate("MainWindow", "Зашифровать"))
self.comboBox.setItemText(1, _translate("MainWindow", "Расшифровать"))
self.lineEdit_3.setText(_translate("MainWindow", "ваывавы"))
self.pushButton_2.setText(_translate("MainWindow", "Запустить"))
self.label_3.setText(_translate("MainWindow", "Введите имя файла"))
self.label_4.setText(_translate("MainWindow", " Выберите тип"))
self.label_5.setText(_translate("MainWindow", " Введите ключ от 1 до 90"))
self.label_6.setText(_translate("MainWindow", " Куда вывести"))
class Engine(QMainWindow, MyWindow):
def __init__(self) -> None:
super().__init__()
self.setupUi(self)
self.pushButton.clicked.connect(self.openFileNameDialog)
''' # ???# ???# ???# ???# ???# ???# ???# ???# ???# ???# ???# ???
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButton.setText(_translate("MainWindow", "Выбрать файл"))
self.comboBox.setItemText(0, _translate("MainWindow", "Зашифровать"))
self.comboBox.setItemText(1, _translate("MainWindow", "Расшифровать"))
self.lineEdit_3.setText(_translate("MainWindow", "ваывавы"))
self.pushButton_2.setText(_translate("MainWindow", "Запустить"))
self.label_3.setText(_translate("MainWindow", "Введите имя файла"))
self.label_4.setText(_translate("MainWindow", " Выберите тип"))
self.label_5.setText(_translate("MainWindow", " Введите ключ от 1 до 90"))
self.label_6.setText(_translate("MainWindow", " Куда вывести"))
def __init__(self, parent=None):
super(MyWindow, self).__init__(parent)
self.lineedit = QLineEdit(self)
self.lineEdit_2 = QLineEdit()
self.lineEdit_3 = QLineEdit()
'''
def openFileNameDialog(self):
options = QFileDialog.Options()
options |= QFileDialog.DontUseNativeDialog
# ??? global filelist
fileName, _ = QFileDialog.getOpenFileName(
self,
"Select Text file",
"",
"Text Files (*.txt)",
options=options
)
if not fileName:
fileName = None
print(fileName)
# self.lineedit.setText(fileName)
# lineEdit
self.lineEdit.setText(fileName) # +++ lineEdit
def ciphering(self):
self.filename = self.lineedit.text()
self.optfilename = self.lineedit_2.text()
self.process = self.combo.currentText()
self.key = self.lineedit_3.text()
assert isinstance(self.key, object)
password_key = int(self.key)
store = ''
Letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz' \
'!@#$%&*(){}[]<>/\|";:\n-=+.,?0123456789'
now = datetime.now()
print(now)
option_1 = self.process
if option_1 == 'Зашифровать':
print('Ok Sir!..You Selected({0})'.format(option_1))
file = self.filename
if password_key == 0:
QMessageBox.critical(self, "Incorrect Encryption Key Entered",
"Please enter Encryption key in range of 1 - 90.")
else:
print("password key: ", password_key)
if file.endswith('.txt'):
try:
file = open(file, 'r').read()
print('Congratualtions output file saved.')
except:
print('Filename Error: Please! Enter File name in txt form/Enter correct address of file.')
for i in file:
if i in Letters:
number = Letters.find(i)
try:
number = number + int(password_key)
except:
print('Key Error: You Enter a Incorrect key.')
break
if number >= len(Letters):
number = number - len(Letters)
elif number < 0:
number = number + len(Letters)
store = store + Letters[number]
else:
store = store + i
save_file = open('{}.txt'.format(self.optfilename), 'w')
save_file.write(store)
save_file.close()
QMessageBox.about(self, "аптаптаптаптап.",
"птататптатпа {} апттпатаппт.".format(self.process))
else:
QMessageBox.critical(self, "тпата", "тпаттата.")
elif option_1 == 'Расшифровать':
print(' аптапаптпа({0})'.format(option_1))
file = self.filename
if password_key == 0:
QMessageBox.critical(self, "апркепр.")
else:
if file.endswith('.txt'):
try:
file = open(file, 'r').read()
print('успешно сохранено.')
except:
print('Ошибка файла: пж.')
for i in file:
if i in Letters:
number = Letters.find(i)
try:
number = number - int(password_key)
except:
print('Ошибка ключа: Ваш ключ не верный .')
break
if number >= len(Letters):
number = number - len(Letters)
elif number < 0:
number = number + len(Letters)
store = store + Letters[number]
else:
store = store + i
save_file = open('{}.txt'.format(self.optfilename), 'w')
save_file.write(store)
save_file.close()
QMessageBox.about(self, "Процесс завершился.",
"поздравляю {} успешно.".format(self.process))
else:
QMessageBox.critical(self, "Ошибка файла", "Введите txt форму .")
if __name__ == "__main__":
App = QApplication(sys.argv)
window = Engine()
window.show()
sys.exit(App.exec())
