Не выводится текст на экран интерфейса программы PyQt5
После добавления в классе Morse() строки с super().init()(это нужно было для решения другой ошибки), на экран перестал выводится текст во второе поле. Основной код:
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
from Design import Ui_form
class MyWidget(QtWidgets.QMainWindow, Ui_form):
def __init__(self):
super().__init__()
self.setupUi(self)
self.run_button.clicked.connect(self.run)
def run(self):
if self.encrypt.isChecked():
if self.comboBox.activated[str]:
Morse().convert(self.input.toPlainText())
class Morse(MyWidget):
def __init__(self):
self.rus_to_morse = {'а': '.-',
'б': '-...',
'в': '.--',
'г': '--.',
'д': '-..',
'е': '.',
'ж': '...-',
'з': '--..',
'и': '..',
'й': '.---',
'к': '-.-',
'л': '.-..',
'м': '--',
'н': '-.',
'о': '---',
'п': '.--.',
'р': '.-.',
'с': '...',
'т': '-',
'у': '..-',
'ф': '..-.',
'х': '....',
'ц': '-.-.',
'ч': '---.',
'ш': '----',
'щ': '--.-',
'ъ': '.--.-.',
'ы': '-.--',
'ь': '-..-',
'э': '..-..',
'ю': '..--',
'я': '.-.-'}
self.o = []
super().__init__()
def convert(self, wordd):
for i in wordd.split():
self.o.append(" ".join(self.rus_to_morse[simv] for simv in i.lower()))
print(wordd.split())
print(wordd)
print(self.o)
print(" ".join(self.o))
self.output.setText(" ".join(self.o))
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
ex = MyWidget()
ex.show()
sys.exit(app.exec_())
Дизайн:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'DESIGN.ui'
#
# Created by: PyQt5 UI code generator 5.15.1
#
# 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
class Ui_form(object):
def setupUi(self, form):
form.setObjectName("form")
form.resize(735, 847)
self.comboBox = QtWidgets.QComboBox(form)
self.comboBox.setGeometry(QtCore.QRect(230, 90, 281, 41))
self.comboBox.setObjectName("comboBox")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.label = QtWidgets.QLabel(form)
self.label.setGeometry(QtCore.QRect(260, 20, 231, 61))
font = QtGui.QFont()
font.setPointSize(22)
self.label.setFont(font)
self.label.setObjectName("label")
self.label_4 = QtWidgets.QLabel(form)
self.label_4.setGeometry(QtCore.QRect(300, 300, 131, 31))
font = QtGui.QFont()
font.setPointSize(14)
self.label_4.setFont(font)
self.label_4.setObjectName("label_4")
self.label_2 = QtWidgets.QLabel(form)
self.label_2.setGeometry(QtCore.QRect(320, 140, 111, 21))
font = QtGui.QFont()
font.setPointSize(14)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.encrypt = QtWidgets.QRadioButton(form)
self.encrypt.setGeometry(QtCore.QRect(190, 170, 141, 31))
font = QtGui.QFont()
font.setPointSize(10)
self.encrypt.setFont(font)
self.encrypt.setObjectName("encrypt")
self.decrypt = QtWidgets.QRadioButton(form)
self.decrypt.setGeometry(QtCore.QRect(420, 170, 151, 31))
font = QtGui.QFont()
font.setPointSize(10)
self.decrypt.setFont(font)
self.decrypt.setObjectName("decrypt")
self.label_3 = QtWidgets.QLabel(form)
self.label_3.setGeometry(QtCore.QRect(100, 210, 561, 31))
font = QtGui.QFont()
font.setPointSize(12)
self.label_3.setFont(font)
self.label_3.setObjectName("label_3")
self.key_line = QtWidgets.QLineEdit(form)
self.key_line.setEnabled(True)
self.key_line.setGeometry(QtCore.QRect(160, 250, 431, 41))
self.key_line.setAutoFillBackground(False)
self.key_line.setFrame(True)
self.key_line.setEchoMode(QtWidgets.QLineEdit.Normal)
self.key_line.setReadOnly(False)
self.key_line.setClearButtonEnabled(False)
self.key_line.setObjectName("key_line")
self.output = QtWidgets.QTextBrowser(form)
self.output.setGeometry(QtCore.QRect(50, 640, 651, 192))
self.output.setObjectName("output")
self.run_button = QtWidgets.QPushButton(form)
self.run_button.setGeometry(QtCore.QRect(280, 540, 181, 41))
font = QtGui.QFont()
font.setPointSize(10)
self.run_button.setFont(font)
self.run_button.setObjectName("run_button")
self.line = QtWidgets.QFrame(form)
self.line.setGeometry(QtCore.QRect(0, 590, 751, 20))
self.line.setFrameShape(QtWidgets.QFrame.HLine)
self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line.setObjectName("line")
self.label_5 = QtWidgets.QLabel(form)
self.label_5.setGeometry(QtCore.QRect(260, 600, 221, 41))
font = QtGui.QFont()
font.setPointSize(14)
self.label_5.setFont(font)
self.label_5.setObjectName("label_5")
self.input = QtWidgets.QTextEdit(form)
self.input.setGeometry(QtCore.QRect(50, 340, 651, 191))
self.input.setObjectName("input")
self.retranslateUi(form)
QtCore.QMetaObject.connectSlotsByName(form)
def retranslateUi(self, form):
_translate = QtCore.QCoreApplication.translate
form.setWindowTitle(_translate("form", "Программа для шифрования"))
self.comboBox.setCurrentText(_translate("form", "Азбука Морзе"))
self.comboBox.setItemText(0, _translate("form", "Азбука Морзе"))
self.comboBox.setItemText(1, _translate("form", "Шифр Цезаря"))
self.comboBox.setItemText(2, _translate("form", "Шифр Вижнера"))
self.comboBox.setItemText(3, _translate("form", "Шифр Гронсфельда"))
self.label.setText(_translate("form", "Выберете шифр:"))
self.label_4.setText(_translate("form", "Введите текст:"))
self.label_2.setText(_translate("form", "Вы хотите..."))
self.encrypt.setText(_translate("form", "Зашифровать текст"))
self.decrypt.setText(_translate("form", "Расшифровать текст"))
self.label_3.setText(_translate("form", "Введите ключ(буквенный для ш. Вижнера, циферный для ш. Гронсфельда): "))
self.run_button.setText(_translate("form", "Преобразовать текст"))
self.label_5.setText(_translate("form", "Преобразованный текст:"))
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_())