Отобразить в QTextEdit результат шифрования

Питон изучаю недавно. И в общем-то нужно сделать шифр Цезаря, и вроде бы всё ок, но только я не знаю как собранную и обработанную информацию, перевести в текст бокс.
Искал в инете по-прежнему не удаётся. Очень надеюсь на вашу помощь.

# -*- coding: utf-8 -*-

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(464, 319)
        self.bt_shifr = QtWidgets.QPushButton(Dialog)
        self.bt_shifr.setGeometry(QtCore.QRect(10, 170, 111, 23))
        font = QtGui.QFont()
        font.setFamily("Times New Roman")
        font.setPointSize(12)
        font.setBold(False)
        font.setItalic(True)
        font.setWeight(9)
        self.bt_shifr.setFont(font)
        self.bt_shifr.setStyleSheet("font: 75 italic 12pt \"Times New Roman\";")
        self.bt_shifr.setObjectName("bt_shifr")
        self.bt_exit = QtWidgets.QPushButton(Dialog)
        self.bt_exit.setGeometry(QtCore.QRect(350, 280, 75, 23))
        font = QtGui.QFont()
        font.setFamily("Times New Roman")
        font.setPointSize(12)
        font.setBold(False)
        font.setItalic(True)
        font.setWeight(9)
        self.bt_exit.setFont(font)
        self.bt_exit.setStyleSheet("font: 75 italic 12pt \"Times New Roman\";")
        self.bt_exit.setObjectName("bt_exit")

        self.bt_exit.clicked.connect(sys.exit)
         
        self.ok_vvoda = QtWidgets.QTextEdit(Dialog)
        self.ok_vvoda.setGeometry(QtCore.QRect(10, 70, 151, 91))
        self.ok_vvoda.setObjectName("ok_vvoda")

        self.okn_result = QtWidgets.QTextEdit(Dialog)
        self.okn_result.setGeometry(QtCore.QRect(10, 230, 151, 81))
        self.okn_result.setObjectName("okn_result")

        self.bt_shifr.clicked.connect(self.osn)

        self.name_proekt = QtWidgets.QLabel(Dialog)
        self.name_proekt.setGeometry(QtCore.QRect(10, 0, 141, 51))
        font = QtGui.QFont()
        font.setFamily("Times New Roman")
        font.setPointSize(14)
        font.setBold(False)
        font.setItalic(True)
        font.setWeight(9)
        self.name_proekt.setFont(font)
        self.name_proekt.setToolTipDuration(-1)
        self.name_proekt.setStyleSheet("font: 75 italic 14pt \"Times New Roman\";")
        self.name_proekt.setObjectName("name_proekt")
        self.shag_shifr = QtWidgets.QLabel(Dialog)
        self.shag_shifr.setGeometry(QtCore.QRect(200, 30, 131, 31))
        font = QtGui.QFont()
        font.setFamily("Times New Roman")
        font.setPointSize(12)
        font.setBold(False)
        font.setItalic(True)
        font.setWeight(9)
        self.shag_shifr.setFont(font)
        self.shag_shifr.setStyleSheet("font: 75 italic 12pt \"Times New Roman\";")
        self.shag_shifr.setObjectName("shag_shifr")
        self.resul = QtWidgets.QLabel(Dialog)
        self.resul.setGeometry(QtCore.QRect(20, 200, 91, 16))
        font = QtGui.QFont()
        font.setFamily("Times New Roman")
        font.setPointSize(12)
        font.setBold(False)
        font.setItalic(True)
        font.setWeight(9)
        self.resul.setFont(font)
        self.resul.setStyleSheet("font: 75 italic 12pt \"Times New Roman\";")
        self.resul.setObjectName("resul")
        self.okn_shag = QtWidgets.QLineEdit(Dialog)
        self.okn_shag.setGeometry(QtCore.QRect(200, 60, 121, 20))
        self.okn_shag.setMaxLength(99)
        self.okn_shag.setObjectName("okn_shag")
        self.langvod = QtWidgets.QLineEdit(Dialog)
        self.langvod.setGeometry(QtCore.QRect(200, 110, 121, 20))
        self.langvod.setText("")
        self.langvod.setMaxLength(2)
        self.langvod.setObjectName("langvod")
        self.viborlang = QtWidgets.QLabel(Dialog)
        self.viborlang.setGeometry(QtCore.QRect(200, 90, 91, 16))
        font = QtGui.QFont()
        font.setFamily("Times New Roman")
        font.setPointSize(11)
        font.setBold(False)
        font.setItalic(True)
        font.setWeight(9)
        self.viborlang.setFont(font)
        self.viborlang.setStyleSheet("font: 75 italic 11pt \"Times New Roman\";")
        self.viborlang.setObjectName("viborlang")

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        self.bt_shifr.setText(_translate("Dialog", "Шифрование"))
        self.bt_exit.setText(_translate("Dialog", "Выйти"))
        self.ok_vvoda.setHtml(_translate("Dialog", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>"))
        self.name_proekt.setText(_translate("Dialog", "   Шифр Цезаря"))
        self.shag_shifr.setText(_translate("Dialog", "Шаг шифравания:"))
        self.resul.setText(_translate("Dialog", "Результат:"))
        self.viborlang.setText(_translate("Dialog", "Язык RU/EN:"))


    def osn(self):
        alfavit_eu =  'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ'
        alfavit_ru = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'
        if self.langvod == "ru":
                for i in self.ok_vvoda:
                    host=alfavit_ru.find(i)
                    new_host=host+self.okn_shag
                    if i in alfvit_ru:
                        itog += alfavit_ru[new_host]
                    else:
                        itog += i

        else: 
                for i in self.ok_vvoda(i):
                    new_host = host + self.okn_shag
                    if i in alfavit_en:
                        itog+= alfavit_en[new_host]
                    else:
                        itog += i
        self.okn_result.setText("Результат" + str(itog))
        
    

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Dialog = QtWidgets.QDialog()
    ui = Ui_Dialog()
    ui.setupUi(Dialog)
    Dialog.show()
    sys.exit(app.exec_())

Ответы (1 шт):

Автор решения: S. Nick

Я не проверял ваш алгоритм, а покажу вам как полученный результат получить в текст боксе, если вы выберите Язык ru.

И еще. НИКОГДА НЕ ИЗМЕНЯЙТЕ код, сгенерированный Qt Designer, НИКОГДА.
Создайте другой класс, который наследуется от соответствующего виджета, и используйте созданный класс для его заполнения.

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(464, 319)
        self.bt_shifr = QtWidgets.QPushButton(Dialog)
        self.bt_shifr.setGeometry(QtCore.QRect(10, 170, 111, 23))
        font = QtGui.QFont()
        font.setFamily("Times New Roman")
        font.setPointSize(12)
        font.setBold(False)
        font.setItalic(True)
        font.setWeight(9)
        self.bt_shifr.setFont(font)
        self.bt_shifr.setStyleSheet("font: 75 italic 12pt \"Times New Roman\";")
        self.bt_shifr.setObjectName("bt_shifr")
        self.bt_exit = QtWidgets.QPushButton(Dialog)
        self.bt_exit.setGeometry(QtCore.QRect(350, 280, 75, 23))
        font = QtGui.QFont()
        font.setFamily("Times New Roman")
        font.setPointSize(12)
        font.setBold(False)
        font.setItalic(True)
        font.setWeight(9)
        self.bt_exit.setFont(font)
        self.bt_exit.setStyleSheet("font: 75 italic 12pt \"Times New Roman\";")
        self.bt_exit.setObjectName("bt_exit")

        self.bt_exit.clicked.connect(sys.exit)
         
        self.ok_vvoda = QtWidgets.QTextEdit(Dialog)
        self.ok_vvoda.setGeometry(QtCore.QRect(10, 70, 151, 91))
        self.ok_vvoda.setObjectName("ok_vvoda")

        self.okn_result = QtWidgets.QTextEdit(Dialog)
        self.okn_result.setGeometry(QtCore.QRect(10, 230, 151, 81))
        self.okn_result.setObjectName("okn_result")

#        self.bt_shifr.clicked.connect(self.osn)

        self.name_proekt = QtWidgets.QLabel(Dialog)
        self.name_proekt.setGeometry(QtCore.QRect(10, 0, 141, 51))
        font = QtGui.QFont()
        font.setFamily("Times New Roman")
        font.setPointSize(14)
        font.setBold(False)
        font.setItalic(True)
        font.setWeight(9)
        self.name_proekt.setFont(font)
        self.name_proekt.setToolTipDuration(-1)
        self.name_proekt.setStyleSheet("font: 75 italic 14pt \"Times New Roman\";")
        self.name_proekt.setObjectName("name_proekt")
        self.shag_shifr = QtWidgets.QLabel(Dialog)
        self.shag_shifr.setGeometry(QtCore.QRect(200, 30, 131, 31))
        font = QtGui.QFont()
        font.setFamily("Times New Roman")
        font.setPointSize(12)
        font.setBold(False)
        font.setItalic(True)
        font.setWeight(9)
        self.shag_shifr.setFont(font)
        self.shag_shifr.setStyleSheet("font: 75 italic 12pt \"Times New Roman\";")
        self.shag_shifr.setObjectName("shag_shifr")
        self.resul = QtWidgets.QLabel(Dialog)
        self.resul.setGeometry(QtCore.QRect(20, 200, 91, 16))
        font = QtGui.QFont()
        font.setFamily("Times New Roman")
        font.setPointSize(12)
        font.setBold(False)
        font.setItalic(True)
        font.setWeight(9)
        self.resul.setFont(font)
        self.resul.setStyleSheet("font: 75 italic 12pt \"Times New Roman\";")
        self.resul.setObjectName("resul")
        self.okn_shag = QtWidgets.QLineEdit(Dialog)
        self.okn_shag.setGeometry(QtCore.QRect(200, 60, 121, 20))
        self.okn_shag.setMaxLength(99)
        self.okn_shag.setObjectName("okn_shag")
        
        self.langvod = QtWidgets.QLineEdit(Dialog)
        self.langvod.setGeometry(QtCore.QRect(200, 110, 121, 20))
        self.langvod.setText("")
        self.langvod.setMaxLength(2)
        self.langvod.setObjectName("langvod")
        
        self.viborlang = QtWidgets.QLabel(Dialog)
        self.viborlang.setGeometry(QtCore.QRect(200, 90, 91, 16))
        font = QtGui.QFont()
        font.setFamily("Times New Roman")
        font.setPointSize(11)
        font.setBold(False)
        font.setItalic(True)
        font.setWeight(9)
        self.viborlang.setFont(font)
        self.viborlang.setStyleSheet("font: 75 italic 11pt \"Times New Roman\";")
        self.viborlang.setObjectName("viborlang")

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        self.bt_shifr.setText(_translate("Dialog", "Шифрование"))
        self.bt_exit.setText(_translate("Dialog", "Выйти"))

# ???                 vvvvvvv # ???        
        self.ok_vvoda.setHtml(_translate("Dialog", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>"))

        self.name_proekt.setText(_translate("Dialog", "   Шифр Цезаря"))
        self.shag_shifr.setText(_translate("Dialog", "Шаг шифравания:"))
        self.resul.setText(_translate("Dialog", "Результат:"))
        self.viborlang.setText(_translate("Dialog", "Язык RU/EN:"))

        
class Dialog(QtWidgets.QDialog, Ui_Dialog):
    def __init__(self):
        super().__init__()
        
        self.setupUi(self)

        self.bt_shifr.clicked.connect(self.osn)


    def osn(self):
        alfavit_eu =  'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ'
        alfavit_ru = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'

        itog = ''                                                         # +++

# !!!                   vvvvvv       
        if self.langvod.text() == "ru":
            
#            for i in self.ok_vvoda:
# !!!                              vvvvvvvvvvvvv
            for i in self.ok_vvoda.toPlainText():

                host = alfavit_ru.find(i)
                
                if host == -1:                                            # +++
                    itog += i                                             # +++
                    continue                                              # +++

#                new_host = host + self.okn_shag
# !!!                                               vvvvvv 
                new_host = host + int(self.okn_shag.text())
                
#                if i in alfvit_ru:
                itog += alfavit_ru[new_host]
#                else:
#                    itog += i

        else: 
            pass
            '''   # !!! Если для "ru" верно, то сделайте по аналогии      
            for i in self.ok_vvoda(i):
                new_host = host + self.okn_shag
                if i in alfavit_en:
                    itog+= alfavit_en[new_host]
                else:
                    itog += i
            '''
            
        self.okn_result.setText(itog)

        

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    w = Dialog()
    w.show()
    sys.exit(app.exec_())

введите сюда описание изображения

→ Ссылка