PyQT5. Открытие файла в textEdition в дочернем окне
В PyQT особо не понимаю, только приступил к изучению. Не получается реализовать функцию open(). Необходимо связать главное окно с окном созданным в классе Text так, чтобы при сохранении можно было передать текст в textEdit1 другого класса.
Потому что, когда я пытаюсь это сделать через self.win.textEdit1.setText(text1) выдаёт ошибку:
AttributeError: 'Ui_Text' object has no attribute 'textEdit1'
Я так понял, что класс главного окна не может изменить значение класса другого окна. Как можно это исправить?
design.py
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.setWindowModality(QtCore.Qt.NonModal)
MainWindow.setEnabled(True)
MainWindow.resize(1012, 729)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
MainWindow.setSizePolicy(sizePolicy)
MainWindow.setMinimumSize(QtCore.QSize(1012, 570))
font = QtGui.QFont()
font.setStyleStrategy(QtGui.QFont.PreferDefault)
MainWindow.setFont(font)
MainWindow.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
MainWindow.setMouseTracking(False)
MainWindow.setWindowOpacity(1.0)
MainWindow.setLayoutDirection(QtCore.Qt.LeftToRight)
MainWindow.setAutoFillBackground(False)
MainWindow.setStyleSheet("background-color:#fa8072")
MainWindow.setInputMethodHints(QtCore.Qt.ImhNone)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout_2 = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout_2.setObjectName("gridLayout_2")
self.widget = QtWidgets.QWidget(self.centralwidget)
self.widget.setMinimumSize(QtCore.QSize(990, 301))
self.widget.setToolTipDuration(-1)
self.widget.setLayoutDirection(QtCore.Qt.LeftToRight)
self.widget.setStyleSheet("background-color:#22222e;\n"
"border-radius:15px;\n"
"")
self.widget.setObjectName("widget")
self.gridLayout = QtWidgets.QGridLayout(self.widget)
self.gridLayout.setContentsMargins(11, 11, 11, 11)
self.gridLayout.setHorizontalSpacing(7)
self.gridLayout.setObjectName("gridLayout")
self.m_field = QtWidgets.QLineEdit(self.widget)
self.m_field.setStyleSheet("background-color:#ffe4e1;\n"
"border: 2px solid #fa8072;\n"
"border-radius: 10px;\n"
"color:black;")
self.m_field.setObjectName("m_field")
self.gridLayout.addWidget(self.m_field, 4, 2, 1, 1)
self.label_7 = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setFamily("Circe Bold")
font.setPointSize(14)
font.setStyleStrategy(QtGui.QFont.PreferDefault)
self.label_7.setFont(font)
self.label_7.setStyleSheet("color:white;")
self.label_7.setObjectName("label_7")
self.gridLayout.addWidget(self.label_7, 2, 0, 1, 1)
self.label_2 = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setFamily("Circe Bold")
font.setPointSize(14)
font.setStyleStrategy(QtGui.QFont.PreferDefault)
self.label_2.setFont(font)
self.label_2.setStyleSheet("color:white;")
self.label_2.setObjectName("label_2")
self.gridLayout.addWidget(self.label_2, 0, 0, 1, 1)
self.label_5 = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setFamily("Circe Bold")
font.setPointSize(14)
font.setStyleStrategy(QtGui.QFont.PreferDefault)
self.label_5.setFont(font)
self.label_5.setStyleSheet("color:white;")
self.label_5.setObjectName("label_5")
self.gridLayout.addWidget(self.label_5, 1, 0, 1, 1)
self.label = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setPointSize(14)
self.label.setFont(font)
self.label.setStyleSheet("color:white;")
self.label.setObjectName("label")
self.gridLayout.addWidget(self.label, 3, 0, 1, 1)
self.class_bt = QtWidgets.QComboBox(self.widget)
self.class_bt.setStyleSheet("background-color:#ffe4e1;\n"
"border: 2px solid #fa8072;\n"
"border-radius: 10px;\n"
"color:black;")
self.class_bt.setObjectName("class_bt")
self.class_bt.addItem("")
self.class_bt.addItem("")
self.class_bt.addItem("")
self.class_bt.addItem("")
self.class_bt.addItem("")
self.class_bt.addItem("")
self.class_bt.addItem("")
self.class_bt.addItem("")
self.class_bt.addItem("")
self.class_bt.addItem("")
self.class_bt.addItem("")
self.gridLayout.addWidget(self.class_bt, 5, 2, 1, 1)
self.label_13 = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setPointSize(14)
font.setBold(True)
font.setWeight(75)
self.label_13.setFont(font)
self.label_13.setStyleSheet("color:white")
self.label_13.setObjectName("label_13")
self.gridLayout.addWidget(self.label_13, 5, 0, 1, 1)
self.label_10 = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setPointSize(14)
self.label_10.setFont(font)
self.label_10.setStyleSheet("color:white;")
self.label_10.setObjectName("label_10")
self.gridLayout.addWidget(self.label_10, 4, 0, 1, 1)
self.h_field = QtWidgets.QLineEdit(self.widget)
font = QtGui.QFont()
font.setFamily("Circe")
self.h_field.setFont(font)
self.h_field.setStyleSheet("background-color:#ffe4e1;\n"
"border: 2px solid #fa8072;\n"
"border-radius: 10px;\n"
"color:black;")
self.h_field.setText("")
self.h_field.setObjectName("h_field")
self.gridLayout.addWidget(self.h_field, 2, 2, 1, 1)
self.label_4 = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setFamily("Circe Bold")
font.setPointSize(14)
font.setStyleStrategy(QtGui.QFont.PreferDefault)
self.label_4.setFont(font)
self.label_4.setStyleSheet("color:white;")
self.label_4.setObjectName("label_4")
self.gridLayout.addWidget(self.label_4, 2, 3, 1, 1)
self.label_11 = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setPointSize(14)
self.label_11.setFont(font)
self.label_11.setStyleSheet("color:white;")
self.label_11.setObjectName("label_11")
self.gridLayout.addWidget(self.label_11, 3, 3, 1, 1)
self.pushButton = QtWidgets.QPushButton(self.widget)
font = QtGui.QFont()
font.setFamily("Circe Bold")
font.setPointSize(17)
font.setStyleStrategy(QtGui.QFont.PreferDefault)
self.pushButton.setFont(font)
self.pushButton.setStyleSheet("QPushButton{\n"
"background-color:#fa8072;\n"
"border: 2px solid #fa8072;\n"
"border-radius: 10px;\n"
"color:white;\n"
"}\n"
"\n"
"QPushButton:pressed {\n"
"background-color:#fa4244;\n"
"}")
self.pushButton.setObjectName("pushButton")
self.gridLayout.addWidget(self.pushButton, 7, 2, 1, 1)
self.a_field = QtWidgets.QLineEdit(self.widget)
font = QtGui.QFont()
font.setFamily("Circe")
self.a_field.setFont(font)
self.a_field.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
self.a_field.setAcceptDrops(True)
self.a_field.setAutoFillBackground(False)
self.a_field.setStyleSheet("background-color:#ffe4e1;\n"
"border: 2px solid #fa8072;\n"
"border-radius: 10px;\n"
"color:black;\n"
"\n"
"\n"
"")
self.a_field.setText("")
self.a_field.setFrame(True)
self.a_field.setEchoMode(QtWidgets.QLineEdit.Normal)
self.a_field.setDragEnabled(False)
self.a_field.setReadOnly(False)
self.a_field.setObjectName("a_field")
self.gridLayout.addWidget(self.a_field, 0, 2, 1, 1)
self.as_field = QtWidgets.QLineEdit(self.widget)
self.as_field.setStyleSheet("background-color:#ffe4e1;\n"
"border: 2px solid #fa8072;\n"
"border-radius: 10px;\n"
"color:black;")
self.as_field.setObjectName("as_field")
self.gridLayout.addWidget(self.as_field, 3, 2, 1, 1)
self.label_12 = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setPointSize(12)
self.label_12.setFont(font)
self.label_12.setStyleSheet("color:white;")
self.label_12.setObjectName("label_12")
self.gridLayout.addWidget(self.label_12, 4, 3, 1, 1)
self.b_field = QtWidgets.QLineEdit(self.widget)
font = QtGui.QFont()
font.setFamily("Circe")
self.b_field.setFont(font)
self.b_field.setStyleSheet("background-color:#ffe4e1;\n"
"border: 2px solid #fa8072;\n"
"border-radius: 10px;\n"
"color:black;")
self.b_field.setText("")
self.b_field.setObjectName("b_field")
self.gridLayout.addWidget(self.b_field, 1, 2, 1, 1)
self.label_6 = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setFamily("Circe Bold")
font.setPointSize(14)
font.setStyleStrategy(QtGui.QFont.PreferDefault)
self.label_6.setFont(font)
self.label_6.setStyleSheet("color:white;")
self.label_6.setObjectName("label_6")
self.gridLayout.addWidget(self.label_6, 0, 3, 1, 1)
self.label_3 = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setFamily("Circe Bold")
font.setPointSize(14)
font.setStyleStrategy(QtGui.QFont.PreferDefault)
self.label_3.setFont(font)
self.label_3.setStyleSheet("color:white;")
self.label_3.setObjectName("label_3")
self.gridLayout.addWidget(self.label_3, 1, 3, 1, 1)
self.class_ar = QtWidgets.QComboBox(self.widget)
self.class_ar.setStyleSheet("background-color:#ffe4e1;\n"
"border: 2px solid #fa8072;\n"
"border-radius: 10px;\n"
"color:black;")
self.class_ar.setObjectName("class_ar")
self.class_ar.addItem("")
self.class_ar.addItem("")
self.class_ar.addItem("")
self.class_ar.addItem("")
self.class_ar.addItem("")
self.class_ar.addItem("")
self.class_ar.addItem("")
self.gridLayout.addWidget(self.class_ar, 6, 2, 1, 1)
self.label_14 = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setPointSize(14)
font.setBold(True)
font.setWeight(75)
self.label_14.setFont(font)
self.label_14.setStyleSheet("color:white;")
self.label_14.setObjectName("label_14")
self.gridLayout.addWidget(self.label_14, 6, 0, 1, 1)
self.gridLayout_2.addWidget(self.widget, 3, 0, 1, 4)
self.label_9 = QtWidgets.QLabel(self.centralwidget)
self.label_9.setStyleSheet("")
self.label_9.setText("")
self.label_9.setPixmap(QtGui.QPixmap(":/newPrefix/123434.png"))
self.label_9.setObjectName("label_9")
self.gridLayout_2.addWidget(self.label_9, 1, 1, 1, 1)
self.answer_text = QtWidgets.QTextBrowser(self.centralwidget)
self.answer_text.setStyleSheet("background-color:#ffe4e1;\n"
"border: 2px solid #fa8072;\n"
"border-radius: 10px;\n"
"color:black;")
self.answer_text.setObjectName("answer_text")
self.gridLayout_2.addWidget(self.answer_text, 1, 3, 1, 1)
self.task_text = QtWidgets.QTextBrowser(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.task_text.sizePolicy().hasHeightForWidth())
self.task_text.setSizePolicy(sizePolicy)
self.task_text.setStyleSheet("background-color:#ffe4e1;\n"
"border: 2px solid #fa8072;\n"
"border-radius: 10px;\n"
"color:black;")
self.task_text.setObjectName("task_text")
self.gridLayout_2.addWidget(self.task_text, 1, 0, 1, 1)
self.label_8 = QtWidgets.QLabel(self.centralwidget)
font = QtGui.QFont()
font.setFamily("Circe ExtraBold")
font.setPointSize(15)
font.setStyleStrategy(QtGui.QFont.PreferDefault)
self.label_8.setFont(font)
self.label_8.setStyleSheet("color:white;")
self.label_8.setObjectName("label_8")
self.gridLayout_2.addWidget(self.label_8, 0, 3, 1, 1)
MainWindow.setCentralWidget(self.centralwidget)
self.menuBar = QtWidgets.QMenuBar(MainWindow)
self.menuBar.setGeometry(QtCore.QRect(0, 0, 1012, 26))
self.menuBar.setObjectName("menuBar")
self.menuFile = QtWidgets.QMenu(self.menuBar)
self.menuFile.setObjectName("menuFile")
self.menuSound = QtWidgets.QMenu(self.menuFile)
self.menuSound.setObjectName("menuSound")
self.menu_Help = QtWidgets.QMenu(self.menuBar)
self.menu_Help.setObjectName("menu_Help")
MainWindow.setMenuBar(self.menuBar)
self.action_Help = QtWidgets.QAction(MainWindow)
self.action_Help.setObjectName("action_Help")
self.action_Save = QtWidgets.QAction(MainWindow)
self.action_Save.setObjectName("action_Save")
self.action_Quit = QtWidgets.QAction(MainWindow)
self.action_Quit.setObjectName("action_Quit")
self.action_Open = QtWidgets.QAction(MainWindow)
self.action_Open.setObjectName("action_Open")
self.action_Document = QtWidgets.QAction(MainWindow)
self.action_Document.setObjectName("action_Document")
self.actionOn = QtWidgets.QAction(MainWindow)
self.actionOn.setObjectName("actionOn")
self.actionOff = QtWidgets.QAction(MainWindow)
self.actionOff.setObjectName("actionOff")
self.actionSave_as = QtWidgets.QAction(MainWindow)
self.actionSave_as.setObjectName("actionSave_as")
self.menuSound.addAction(self.actionOn)
self.menuSound.addAction(self.actionOff)
self.menuFile.addAction(self.menuSound.menuAction())
self.menuFile.addAction(self.action_Save)
self.menuFile.addAction(self.actionSave_as)
self.menuFile.addAction(self.action_Open)
self.menuFile.addSeparator()
self.menuFile.addAction(self.action_Quit)
self.menu_Help.addAction(self.action_Document)
self.menuBar.addAction(self.menuFile.menuAction())
self.menuBar.addAction(self.menu_Help.menuAction())
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Проверка арматуры на прочность"))
self.m_field.setPlaceholderText(_translate("MainWindow", "550"))
self.label_7.setText(_translate("MainWindow", "h = "))
self.label_2.setText(_translate("MainWindow", "a = "))
self.label_5.setText(_translate("MainWindow", "b = "))
self.label.setText(_translate("MainWindow", "As="))
self.class_bt.setItemText(0, _translate("MainWindow", "B10"))
self.class_bt.setItemText(1, _translate("MainWindow", "B15"))
self.class_bt.setItemText(2, _translate("MainWindow", "B20"))
self.class_bt.setItemText(3, _translate("MainWindow", "B25"))
self.class_bt.setItemText(4, _translate("MainWindow", "B30"))
self.class_bt.setItemText(5, _translate("MainWindow", "B35"))
self.class_bt.setItemText(6, _translate("MainWindow", "B40"))
self.class_bt.setItemText(7, _translate("MainWindow", "B45"))
self.class_bt.setItemText(8, _translate("MainWindow", "B50"))
self.class_bt.setItemText(9, _translate("MainWindow", "B55"))
self.class_bt.setItemText(10, _translate("MainWindow", "B60"))
self.label_13.setText(_translate("MainWindow", "Класс бетона:"))
self.label_10.setText(_translate("MainWindow", "M="))
self.h_field.setPlaceholderText(_translate("MainWindow", "800"))
self.label_4.setText(_translate("MainWindow", "мм"))
self.label_11.setText(_translate("MainWindow", "мм2"))
self.pushButton.setText(_translate("MainWindow", "Рассчитать"))
self.a_field.setPlaceholderText(_translate("MainWindow", "70"))
self.as_field.setPlaceholderText(_translate("MainWindow", "2945"))
self.label_12.setText(_translate("MainWindow", "kH*M"))
self.b_field.setPlaceholderText(_translate("MainWindow", "300"))
self.label_6.setText(_translate("MainWindow", "мм"))
self.label_3.setText(_translate("MainWindow", "мм"))
self.class_ar.setItemText(0, _translate("MainWindow", "А240"))
self.class_ar.setItemText(1, _translate("MainWindow", "А400"))
self.class_ar.setItemText(2, _translate("MainWindow", "А500"))
self.class_ar.setItemText(3, _translate("MainWindow", "A500СП"))
self.class_ar.setItemText(4, _translate("MainWindow", "А600"))
self.class_ar.setItemText(5, _translate("MainWindow", "Ан600С"))
self.class_ar.setItemText(6, _translate("MainWindow", "В500"))
self.label_14.setText(_translate("MainWindow", "Класс арматуры:"))
self.answer_text.setHtml(_translate("MainWindow", "<!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:7.8pt; 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; font-size:8pt;\"><br /></p></body></html>"))
self.task_text.setHtml(_translate("MainWindow", "<!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:7.8pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Circe\'; font-size:14pt;\">Дано сечение размерами b, h, a мм; растянутая арматура класса </span><span style=\" font-family:\'Circe\'; font-size:14pt; font-weight:600;\">A400</span><span style=\" font-family:\'Circe\'; font-size:14pt;\"> (Rs = 350 МПа); площадь ее сечения A</span><span style=\" font-family:\'Circe\'; font-size:14pt; vertical-align:sub;\">s</span><span style=\" font-family:\'Circe\'; font-size:14pt;\"> = 2945 мм</span><span style=\" font-family:\'Circe\'; font-size:14pt; vertical-align:super;\">2</span><span style=\" font-family:\'Circe\'; font-size:14pt;\"> (6Ø25); бетон тяжелый класса </span><span style=\" font-family:\'Circe\'; font-size:14pt; font-weight:600;\">B25</span><span style=\" font-family:\'Circe\'; font-size:14pt;\"> (Rb = 14,5 МПа); изгибающий момент с учетом кратковременных нагрузок M = 550 кН•м.<br /></span><span style=\" font-family:\'Circe\'; font-size:14pt; text-decoration: underline;\">Требуется проверить прочность сечения.</span></p></body></html>"))
self.label_8.setText(_translate("MainWindow", "Прочность арматуры"))
self.menuFile.setTitle(_translate("MainWindow", "&File"))
self.menuSound.setTitle(_translate("MainWindow", "Sound"))
self.menu_Help.setTitle(_translate("MainWindow", "&Help"))
self.action_Help.setText(_translate("MainWindow", "&Help"))
self.action_Save.setText(_translate("MainWindow", "&Save"))
self.action_Quit.setText(_translate("MainWindow", "&Quit"))
self.action_Open.setText(_translate("MainWindow", "&Open"))
self.action_Document.setText(_translate("MainWindow", "&Document"))
self.actionOn.setText(_translate("MainWindow", "On"))
self.actionOff.setText(_translate("MainWindow", "Off"))
self.actionSave_as.setText(_translate("MainWindow", "Save as"))
import icon_cwt
help.py:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Help(object):
def setupUi(self, Help):
Help.setObjectName("Help")
Help.resize(700, 501)
self.formLayout = QtWidgets.QFormLayout(Help)
self.formLayout.setContentsMargins(0, 0, 0, 0)
self.formLayout.setHorizontalSpacing(0)
self.formLayout.setObjectName("formLayout")
self.listWidget = QtWidgets.QListWidget(Help)
self.listWidget.setEnabled(True)
self.listWidget.setMinimumSize(QtCore.QSize(700, 501))
self.listWidget.setResizeMode(QtWidgets.QListView.Fixed)
self.listWidget.setObjectName("listWidget")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.listWidget)
self.retranslateUi(Help)
QtCore.QMetaObject.connectSlotsByName(Help)
def retranslateUi(self, Help):
_translate = QtCore.QCoreApplication.translate
Help.setWindowTitle(_translate("Help", "Dialog"))
text.py
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Text(object):
def setupUi(self, Text):
Text.setObjectName("Text")
Text.resize(958, 736)
Text.setIconSize(QtCore.QSize(30, 30))
self.centralwidget = QtWidgets.QWidget(Text)
self.centralwidget.setMinimumSize(QtCore.QSize(775, 583))
self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout.setContentsMargins(0, 0, 0, 0)
self.gridLayout.setSpacing(7)
self.gridLayout.setObjectName("gridLayout")
self.textEdit1 = QtWidgets.QTextEdit(self.centralwidget)
self.textEdit1.setObjectName("textEdit1")
self.textEdit1.setText('')
text = self.textEdit1
self.gridLayout.addWidget(self.textEdit1, 0, 0, 1, 1)
Text.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(Text)
self.menubar.setGeometry(QtCore.QRect(0, 0, 958, 26))
self.menubar.setObjectName("menubar")
Text.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(Text)
self.statusbar.setObjectName("statusbar")
Text.setStatusBar(self.statusbar)
self.retranslateUi(Text)
QtCore.QMetaObject.connectSlotsByName(Text)
def retranslateUi(self, Text):
_translate = QtCore.QCoreApplication.translate
Text.setWindowTitle(_translate("Text", "MainWindow"))
def main():
app = QApplication(sys.argv)
window = Ui_Text()
window.show()
sys.exit(app.exec_())
if __name__ == '__main__':
app.py
from sys import argv
from typing import List
from PyQt5 import QtWidgets, Qt, QtCore
from PyQt5.QtMultimedia import QSound
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, qApp, QTextEdit, QDialog, QFileDialog
from PyQt5.QtGui import QFontDatabase, QIcon
from PyQt5 import QtGui
from PyQt5.QtCore import QCoreApplication
import design
import Help
import text
class Text(QMainWindow,text.Ui_Text):
def __init__(self, parent=None):
"""Метод инициализации интерфейса."""
super(Text, self).__init__(parent)
self.setupUi(self)
self.show()
class Helped(QDialog, Help.Ui_Help):
def __init__(self, parent=None):
"""Метод инициализации интерфейса."""
super(Helped, self).__init__(parent)
self.setupUi(self)
self.show()
class ExampleApp(QMainWindow, design.Ui_MainWindow):
def __init__(self,parent=None):
"""Метод инициализации интерфейса."""
super(ExampleApp, self).__init__(parent)
QFontDatabase.addApplicationFont('fonts/circe.ttf')
QFontDatabase.addApplicationFont('fonts/circe-bold.ttf')
QFontDatabase.addApplicationFont('fonts/circe-extrabold.ttf')
self.setupUi(self)
self.pushButton.clicked.connect(self.count)
self.setWindowIcon(QIcon('calculator.png'))
self.action_Quit.triggered.connect(self.close)
self.menuFile.triggered.connect(self.selected)
self.action_Document.triggered.connect(self.dialog)
self.action_Save.triggered.connect(self.save)
self.actionSave_as.triggered.connect(self.save_as)
self.action_Open.triggered.connect(self.file_open())
self.Sound = QSound('sound_button.wav', self)
self.pushButton.clicked.connect(self.Sound.play)
self.action_Quit.triggered.connect(self.Sound.play)
self.menuFile.triggered.connect(self.Sound.play)
self.action_Document.triggered.connect(self.Sound.play)
self.menu_Help.triggered.connect(self.Sound.play)
self.show()
self.name = "save.txt"
def okno2(self):
self.okno = Helped()
self.okno.show()
def file_open(self):
fname = QFileDialog.getOpenFileName(self, 'Open file', '', '*.txt')[0]
self.win = text.Ui_Text()
if len(fname) > 0:
f = open(fname,'r')
with f:
text1 = f.read()
self.win.textEdit1.setText(text1)
self.okno2()
def save_as(self):
self.name = QtWidgets.QFileDialog.getSaveFileName(self, 'Save File', '', '(*.txt')[0]
self.save()
def save(self):
a_field = (
self.a_field.text(), self.b_field.text(), self.h_field.text(), self.as_field.text(), self.m_field.text(),
self.class_bt.currentText(), self.class_ar.currentText(), self.answer_text.toPlainText())
if a_field[0] == '' or a_field[1] == '' or a_field[2] == '' or a_field[3] == '' or a_field[4] == ''or a_field[7] == '':
reply = QtWidgets.QMessageBox.information(self, "Save", "Enter the data click the calculate button to save the data",
QtWidgets.QMessageBox.Yes)
else:
if len(self.name)>0:
with open(self.name,'a') as f:
f.write('а= '+a_field[0]+' мм'+'\n'+'b= '+a_field[1]+' мм'+'\n'+'h= '+ a_field[2]+' мм'+'\n'+'As= '+ a_field[3]+' мм2'+'\n'+'M= '+ a_field[4]+' kH*M'+'\n'+'Класс бетона: '+ a_field[5]+'\n'+'Класс арматуры: '+ a_field[6]+'\n'+'Прочность арматуры: '+ a_field[7]+'\n \n')
def dialog(self):
dialog = QtWidgets.QDialog()
dialog.ui = Help.Ui_Help()
dialog.ui.setupUi(dialog)
dialog.exec_()
dialog.show()
Ответы (2 шт):
Я попробовал что-то сделать для вас, скопируйте мой пример и попробуйте. Если что-то будут не понятно - спросите.
В один ответ не помещаюсь - разбиваю на части.
1-я часть модуль design_q1363451.py
from PyQt5 import QtGui, QtWidgets, QtCore
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.setWindowModality(QtCore.Qt.NonModal)
MainWindow.setEnabled(True)
MainWindow.resize(1012, 729)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
MainWindow.setSizePolicy(sizePolicy)
MainWindow.setMinimumSize(QtCore.QSize(1012, 570))
font = QtGui.QFont()
font.setStyleStrategy(QtGui.QFont.PreferDefault)
MainWindow.setFont(font)
MainWindow.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
MainWindow.setMouseTracking(False)
MainWindow.setWindowOpacity(1.0)
MainWindow.setLayoutDirection(QtCore.Qt.LeftToRight)
MainWindow.setAutoFillBackground(False)
MainWindow.setStyleSheet("background-color:#fa8072")
MainWindow.setInputMethodHints(QtCore.Qt.ImhNone)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout_2 = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout_2.setObjectName("gridLayout_2")
self.widget = QtWidgets.QWidget(self.centralwidget)
self.widget.setMinimumSize(QtCore.QSize(990, 301))
self.widget.setToolTipDuration(-1)
self.widget.setLayoutDirection(QtCore.Qt.LeftToRight)
self.widget.setStyleSheet("background-color:#22222e;\n"
"border-radius:15px;\n"
"")
self.widget.setObjectName("widget")
self.gridLayout = QtWidgets.QGridLayout(self.widget)
self.gridLayout.setContentsMargins(11, 11, 11, 11)
self.gridLayout.setHorizontalSpacing(7)
self.gridLayout.setObjectName("gridLayout")
self.m_field = QtWidgets.QLineEdit(self.widget)
self.m_field.setStyleSheet("background-color:#ffe4e1;\n"
"border: 2px solid #fa8072;\n"
"border-radius: 10px;\n"
"color:black;")
self.m_field.setObjectName("m_field")
self.gridLayout.addWidget(self.m_field, 4, 2, 1, 1)
self.label_7 = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setFamily("Circe Bold")
font.setPointSize(14)
font.setStyleStrategy(QtGui.QFont.PreferDefault)
self.label_7.setFont(font)
self.label_7.setStyleSheet("color:white;")
self.label_7.setObjectName("label_7")
self.gridLayout.addWidget(self.label_7, 2, 0, 1, 1)
self.label_2 = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setFamily("Circe Bold")
font.setPointSize(14)
font.setStyleStrategy(QtGui.QFont.PreferDefault)
self.label_2.setFont(font)
self.label_2.setStyleSheet("color:white;")
self.label_2.setObjectName("label_2")
self.gridLayout.addWidget(self.label_2, 0, 0, 1, 1)
self.label_5 = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setFamily("Circe Bold")
font.setPointSize(14)
font.setStyleStrategy(QtGui.QFont.PreferDefault)
self.label_5.setFont(font)
self.label_5.setStyleSheet("color:white;")
self.label_5.setObjectName("label_5")
self.gridLayout.addWidget(self.label_5, 1, 0, 1, 1)
self.label = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setPointSize(14)
self.label.setFont(font)
self.label.setStyleSheet("color:white;")
self.label.setObjectName("label")
self.gridLayout.addWidget(self.label, 3, 0, 1, 1)
self.class_bt = QtWidgets.QComboBox(self.widget)
self.class_bt.setStyleSheet("background-color:#ffe4e1;\n"
"border: 2px solid #fa8072;\n"
"border-radius: 10px;\n"
"color:black;")
self.class_bt.setObjectName("class_bt")
self.class_bt.addItem("")
self.class_bt.addItem("")
self.class_bt.addItem("")
self.class_bt.addItem("")
self.class_bt.addItem("")
self.class_bt.addItem("")
self.class_bt.addItem("")
self.class_bt.addItem("")
self.class_bt.addItem("")
self.class_bt.addItem("")
self.class_bt.addItem("")
self.gridLayout.addWidget(self.class_bt, 5, 2, 1, 1)
self.label_13 = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setPointSize(14)
font.setBold(True)
font.setWeight(75)
self.label_13.setFont(font)
self.label_13.setStyleSheet("color:white")
self.label_13.setObjectName("label_13")
self.gridLayout.addWidget(self.label_13, 5, 0, 1, 1)
self.label_10 = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setPointSize(14)
self.label_10.setFont(font)
self.label_10.setStyleSheet("color:white;")
self.label_10.setObjectName("label_10")
self.gridLayout.addWidget(self.label_10, 4, 0, 1, 1)
self.h_field = QtWidgets.QLineEdit(self.widget)
font = QtGui.QFont()
font.setFamily("Circe")
self.h_field.setFont(font)
self.h_field.setStyleSheet("background-color:#ffe4e1;\n"
"border: 2px solid #fa8072;\n"
"border-radius: 10px;\n"
"color:black;")
self.h_field.setText("")
self.h_field.setObjectName("h_field")
self.gridLayout.addWidget(self.h_field, 2, 2, 1, 1)
self.label_4 = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setFamily("Circe Bold")
font.setPointSize(14)
font.setStyleStrategy(QtGui.QFont.PreferDefault)
self.label_4.setFont(font)
self.label_4.setStyleSheet("color:white;")
self.label_4.setObjectName("label_4")
self.gridLayout.addWidget(self.label_4, 2, 3, 1, 1)
self.label_11 = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setPointSize(14)
self.label_11.setFont(font)
self.label_11.setStyleSheet("color:white;")
self.label_11.setObjectName("label_11")
self.gridLayout.addWidget(self.label_11, 3, 3, 1, 1)
self.pushButton = QtWidgets.QPushButton(self.widget)
font = QtGui.QFont()
font.setFamily("Circe Bold")
font.setPointSize(17)
font.setStyleStrategy(QtGui.QFont.PreferDefault)
self.pushButton.setFont(font)
self.pushButton.setStyleSheet("QPushButton{\n"
"background-color:#fa8072;\n"
"border: 2px solid #fa8072;\n"
"border-radius: 10px;\n"
"color:white;\n"
"}\n"
"\n"
"QPushButton:pressed {\n"
"background-color:#fa4244;\n"
"}")
self.pushButton.setObjectName("pushButton")
self.gridLayout.addWidget(self.pushButton, 7, 2, 1, 1)
self.a_field = QtWidgets.QLineEdit(self.widget)
font = QtGui.QFont()
font.setFamily("Circe")
self.a_field.setFont(font)
self.a_field.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
self.a_field.setAcceptDrops(True)
self.a_field.setAutoFillBackground(False)
self.a_field.setStyleSheet("background-color:#ffe4e1;\n"
"border: 2px solid #fa8072;\n"
"border-radius: 10px;\n"
"color:black;\n"
"\n"
"\n"
"")
self.a_field.setText("")
self.a_field.setFrame(True)
self.a_field.setEchoMode(QtWidgets.QLineEdit.Normal)
self.a_field.setDragEnabled(False)
self.a_field.setReadOnly(False)
self.a_field.setObjectName("a_field")
self.gridLayout.addWidget(self.a_field, 0, 2, 1, 1)
self.as_field = QtWidgets.QLineEdit(self.widget)
self.as_field.setStyleSheet("background-color:#ffe4e1;\n"
"border: 2px solid #fa8072;\n"
"border-radius: 10px;\n"
"color:black;")
self.as_field.setObjectName("as_field")
self.gridLayout.addWidget(self.as_field, 3, 2, 1, 1)
self.label_12 = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setPointSize(12)
self.label_12.setFont(font)
self.label_12.setStyleSheet("color:white;")
self.label_12.setObjectName("label_12")
self.gridLayout.addWidget(self.label_12, 4, 3, 1, 1)
self.b_field = QtWidgets.QLineEdit(self.widget)
font = QtGui.QFont()
font.setFamily("Circe")
self.b_field.setFont(font)
self.b_field.setStyleSheet("background-color:#ffe4e1;\n"
"border: 2px solid #fa8072;\n"
"border-radius: 10px;\n"
"color:black;")
self.b_field.setText("")
self.b_field.setObjectName("b_field")
self.gridLayout.addWidget(self.b_field, 1, 2, 1, 1)
self.label_6 = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setFamily("Circe Bold")
font.setPointSize(14)
font.setStyleStrategy(QtGui.QFont.PreferDefault)
self.label_6.setFont(font)
self.label_6.setStyleSheet("color:white;")
self.label_6.setObjectName("label_6")
self.gridLayout.addWidget(self.label_6, 0, 3, 1, 1)
self.label_3 = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setFamily("Circe Bold")
font.setPointSize(14)
font.setStyleStrategy(QtGui.QFont.PreferDefault)
self.label_3.setFont(font)
self.label_3.setStyleSheet("color:white;")
self.label_3.setObjectName("label_3")
self.gridLayout.addWidget(self.label_3, 1, 3, 1, 1)
self.class_ar = QtWidgets.QComboBox(self.widget)
self.class_ar.setStyleSheet("background-color:#ffe4e1;\n"
"border: 2px solid #fa8072;\n"
"border-radius: 10px;\n"
"color:black;")
self.class_ar.setObjectName("class_ar")
self.class_ar.addItem("")
self.class_ar.addItem("")
self.class_ar.addItem("")
self.class_ar.addItem("")
self.class_ar.addItem("")
self.class_ar.addItem("")
self.class_ar.addItem("")
self.gridLayout.addWidget(self.class_ar, 6, 2, 1, 1)
self.label_14 = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setPointSize(14)
font.setBold(True)
font.setWeight(75)
self.label_14.setFont(font)
self.label_14.setStyleSheet("color:white;")
self.label_14.setObjectName("label_14")
self.gridLayout.addWidget(self.label_14, 6, 0, 1, 1)
self.gridLayout_2.addWidget(self.widget, 3, 0, 1, 4)
self.label_9 = QtWidgets.QLabel(self.centralwidget)
self.label_9.setStyleSheet("")
self.label_9.setText("")
# !!! self.label_9.setPixmap(QtGui.QPixmap(":/newPrefix/123434.png"))
self.label_9.setPixmap(QtGui.QPixmap("Ok.png")) # установите свое
self.label_9.setObjectName("label_9")
self.gridLayout_2.addWidget(self.label_9, 1, 1, 1, 1)
self.answer_text = QtWidgets.QTextBrowser(self.centralwidget)
self.answer_text.setStyleSheet("background-color:#ffe4e1;\n"
"border: 2px solid #fa8072;\n"
"border-radius: 10px;\n"
"color:black;")
self.answer_text.setObjectName("answer_text")
self.gridLayout_2.addWidget(self.answer_text, 1, 3, 1, 1)
self.task_text = QtWidgets.QTextBrowser(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.task_text.sizePolicy().hasHeightForWidth())
self.task_text.setSizePolicy(sizePolicy)
self.task_text.setStyleSheet("background-color:#ffe4e1;\n"
"border: 2px solid #fa8072;\n"
"border-radius: 10px;\n"
"color:black;")
self.task_text.setObjectName("task_text")
self.gridLayout_2.addWidget(self.task_text, 1, 0, 1, 1)
self.label_8 = QtWidgets.QLabel(self.centralwidget)
font = QtGui.QFont()
font.setFamily("Circe ExtraBold")
font.setPointSize(15)
font.setStyleStrategy(QtGui.QFont.PreferDefault)
self.label_8.setFont(font)
self.label_8.setStyleSheet("color:white;")
self.label_8.setObjectName("label_8")
self.gridLayout_2.addWidget(self.label_8, 0, 3, 1, 1)
MainWindow.setCentralWidget(self.centralwidget)
self.menuBar = QtWidgets.QMenuBar(MainWindow)
self.menuBar.setGeometry(QtCore.QRect(0, 0, 1012, 26))
self.menuBar.setObjectName("menuBar")
self.menuFile = QtWidgets.QMenu(self.menuBar)
self.menuFile.setObjectName("menuFile")
self.menuSound = QtWidgets.QMenu(self.menuFile)
self.menuSound.setObjectName("menuSound")
self.menu_Help = QtWidgets.QMenu(self.menuBar)
self.menu_Help.setObjectName("menu_Help")
MainWindow.setMenuBar(self.menuBar)
self.action_Help = QtWidgets.QAction(MainWindow)
self.action_Help.setObjectName("action_Help")
self.action_Save = QtWidgets.QAction(MainWindow)
self.action_Save.setObjectName("action_Save")
self.action_Quit = QtWidgets.QAction(MainWindow)
self.action_Quit.setObjectName("action_Quit")
self.action_Open = QtWidgets.QAction(MainWindow)
self.action_Open.setObjectName("action_Open")
self.action_Document = QtWidgets.QAction(MainWindow)
self.action_Document.setObjectName("action_Document")
self.actionOn = QtWidgets.QAction(MainWindow)
self.actionOn.setObjectName("actionOn")
self.actionOff = QtWidgets.QAction(MainWindow)
self.actionOff.setObjectName("actionOff")
self.actionSave_as = QtWidgets.QAction(MainWindow)
self.actionSave_as.setObjectName("actionSave_as")
self.menuSound.addAction(self.actionOn)
self.menuSound.addAction(self.actionOff)
self.menuFile.addAction(self.menuSound.menuAction())
self.menuFile.addAction(self.action_Save)
self.menuFile.addAction(self.actionSave_as)
self.menuFile.addAction(self.action_Open)
self.menuFile.addSeparator()
self.menuFile.addAction(self.action_Quit)
self.menu_Help.addAction(self.action_Document)
self.menuBar.addAction(self.menuFile.menuAction())
self.menuBar.addAction(self.menu_Help.menuAction())
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Проверка арматуры на прочность"))
self.m_field.setPlaceholderText(_translate("MainWindow", "550"))
self.label_7.setText(_translate("MainWindow", "h = "))
self.label_2.setText(_translate("MainWindow", "a = "))
self.label_5.setText(_translate("MainWindow", "b = "))
self.label.setText(_translate("MainWindow", "As="))
self.class_bt.setItemText(0, _translate("MainWindow", "B10"))
self.class_bt.setItemText(1, _translate("MainWindow", "B15"))
self.class_bt.setItemText(2, _translate("MainWindow", "B20"))
self.class_bt.setItemText(3, _translate("MainWindow", "B25"))
self.class_bt.setItemText(4, _translate("MainWindow", "B30"))
self.class_bt.setItemText(5, _translate("MainWindow", "B35"))
self.class_bt.setItemText(6, _translate("MainWindow", "B40"))
self.class_bt.setItemText(7, _translate("MainWindow", "B45"))
self.class_bt.setItemText(8, _translate("MainWindow", "B50"))
self.class_bt.setItemText(9, _translate("MainWindow", "B55"))
self.class_bt.setItemText(10, _translate("MainWindow", "B60"))
self.label_13.setText(_translate("MainWindow", "Класс бетона:"))
self.label_10.setText(_translate("MainWindow", "M="))
self.h_field.setPlaceholderText(_translate("MainWindow", "800"))
self.label_4.setText(_translate("MainWindow", "мм"))
self.label_11.setText(_translate("MainWindow", "мм2"))
self.pushButton.setText(_translate("MainWindow", "Рассчитать"))
self.a_field.setPlaceholderText(_translate("MainWindow", "70"))
self.as_field.setPlaceholderText(_translate("MainWindow", "2945"))
self.label_12.setText(_translate("MainWindow", "kH*M"))
self.b_field.setPlaceholderText(_translate("MainWindow", "300"))
self.label_6.setText(_translate("MainWindow", "мм"))
self.label_3.setText(_translate("MainWindow", "мм"))
self.class_ar.setItemText(0, _translate("MainWindow", "А240"))
self.class_ar.setItemText(1, _translate("MainWindow", "А400"))
self.class_ar.setItemText(2, _translate("MainWindow", "А500"))
self.class_ar.setItemText(3, _translate("MainWindow", "A500СП"))
self.class_ar.setItemText(4, _translate("MainWindow", "А600"))
self.class_ar.setItemText(5, _translate("MainWindow", "Ан600С"))
self.class_ar.setItemText(6, _translate("MainWindow", "В500"))
self.label_14.setText(_translate("MainWindow", "Класс арматуры:"))
self.answer_text.setHtml(_translate("MainWindow", "<!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:7.8pt; 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; font-size:8pt;\"><br /></p></body></html>"))
self.task_text.setHtml(_translate("MainWindow", "<!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:7.8pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Circe\'; font-size:14pt;\">Дано сечение размерами b, h, a мм; растянутая арматура класса </span><span style=\" font-family:\'Circe\'; font-size:14pt; font-weight:600;\">A400</span><span style=\" font-family:\'Circe\'; font-size:14pt;\"> (Rs = 350 МПа); площадь ее сечения A</span><span style=\" font-family:\'Circe\'; font-size:14pt; vertical-align:sub;\">s</span><span style=\" font-family:\'Circe\'; font-size:14pt;\"> = 2945 мм</span><span style=\" font-family:\'Circe\'; font-size:14pt; vertical-align:super;\">2</span><span style=\" font-family:\'Circe\'; font-size:14pt;\"> (6Ø25); бетон тяжелый класса </span><span style=\" font-family:\'Circe\'; font-size:14pt; font-weight:600;\">B25</span><span style=\" font-family:\'Circe\'; font-size:14pt;\"> (Rb = 14,5 МПа); изгибающий момент с учетом кратковременных нагрузок M = 550 кН•м.<br /></span><span style=\" font-family:\'Circe\'; font-size:14pt; text-decoration: underline;\">Требуется проверить прочность сечения.</span></p></body></html>"))
self.label_8.setText(_translate("MainWindow", "Прочность арматуры"))
self.menuFile.setTitle(_translate("MainWindow", "&File"))
self.menuSound.setTitle(_translate("MainWindow", "Sound"))
self.menu_Help.setTitle(_translate("MainWindow", "&Help"))
self.action_Help.setText(_translate("MainWindow", "&Help"))
self.action_Save.setText(_translate("MainWindow", "&Save"))
self.action_Quit.setText(_translate("MainWindow", "&Quit"))
self.action_Open.setText(_translate("MainWindow", "&Open"))
self.action_Document.setText(_translate("MainWindow", "&Document"))
self.actionOn.setText(_translate("MainWindow", "On"))
self.actionOff.setText(_translate("MainWindow", "Off"))
self.actionSave_as.setText(_translate("MainWindow", "Save as"))
# import icon_cwt
2-я часть, модуль main.py
import sys
# ??? from typing import List
from PyQt5 import QtGui, QtWidgets, QtCore
from PyQt5.Qt import *
from design_q1363451 import Ui_MainWindow
#Дочернее окно 1: help.py
#import Help
class Ui_Help(object):
def setupUi(self, Help):
Help.setObjectName("Help")
Help.resize(200, 600)
self.formLayout = QtWidgets.QFormLayout(Help)
self.formLayout.setContentsMargins(0, 0, 0, 0)
self.formLayout.setHorizontalSpacing(0)
self.formLayout.setObjectName("formLayout")
self.listWidget = QtWidgets.QListWidget(Help)
self.listWidget.setEnabled(True)
self.listWidget.setMinimumSize(QtCore.QSize(200, 600))
self.listWidget.setResizeMode(QtWidgets.QListView.Fixed)
self.listWidget.setObjectName("listWidget")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.listWidget)
self.retranslateUi(Help)
QtCore.QMetaObject.connectSlotsByName(Help)
def retranslateUi(self, Help):
_translate = QtCore.QCoreApplication.translate
Help.setWindowTitle(_translate("Help", "Helped Dialog"))
#Дочерние окно 2 в которое надо переносить данные из txt: text.py
#import text
class Ui_Text(object):
def setupUi(self, Text):
Text.setObjectName("Text")
Text.resize(1200, 400)
Text.setIconSize(QtCore.QSize(30, 30))
self.centralwidget = QtWidgets.QWidget(Text)
self.centralwidget.setMinimumSize(QtCore.QSize(500, 400))
self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout.setContentsMargins(0, 0, 0, 0)
self.gridLayout.setSpacing(7)
self.gridLayout.setObjectName("gridLayout")
self.textEdit1 = QtWidgets.QTextEdit(self.centralwidget)
self.textEdit1.setObjectName("textEdit1")
self.textEdit1.setText('')
# ??? text = self.textEdit1
self.gridLayout.addWidget(self.textEdit1, 0, 0, 1, 1)
Text.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(Text)
self.menubar.setGeometry(QtCore.QRect(0, 0, 958, 26))
self.menubar.setObjectName("menubar")
Text.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(Text)
self.statusbar.setObjectName("statusbar")
Text.setStatusBar(self.statusbar)
self.retranslateUi(Text)
QtCore.QMetaObject.connectSlotsByName(Text)
def retranslateUi(self, Text):
_translate = QtCore.QCoreApplication.translate
Text.setWindowTitle(_translate("Text", "Ui_Text MainWindow"))
#И файл app.py где я инициализирую интерфейс и т.д.
#class Text(QMainWindow,text.Ui_Text):
class Text(QMainWindow, Ui_Text):
def __init__(self, parent=None):
"""Метод инициализации интерфейса."""
super(Text, self).__init__(parent)
self.setupUi(self)
# ??? self.show()
#class Helped(QDialog, Help.Ui_Help):
class Helped(QDialog, Ui_Help):
def __init__(self, parent=None):
"""Метод инициализации интерфейса."""
super(Helped, self).__init__(parent)
self.setupUi(self)
self.setStyleSheet("background-color:#E79E4F;") # +++
self.listWidget.addItems(["Item 1", "Item 2", "Item 3"]) # +++
# ??? self.show()
#class ExampleApp(QMainWindow, design.Ui_MainWindow):
class ExampleApp(QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
QFontDatabase.addApplicationFont('fonts/circe.ttf')
QFontDatabase.addApplicationFont('fonts/circe-bold.ttf')
QFontDatabase.addApplicationFont('fonts/circe-extrabold.ttf')
self.setupUi(self)
# +++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
self.win = Text()
self.okno = Helped()
# +++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# ??? count
self.pushButton.clicked.connect(self.count)
self.setWindowIcon(QIcon('calculator.png'))
self.action_Quit.triggered.connect(self.close)
self.menuFile.triggered.connect(self.selected)
# self.action_Document.triggered.connect(self.dialog)
self.action_Document.triggered.connect(self._dialog)
self.action_Save.triggered.connect(self.save)
self.actionSave_as.triggered.connect(self.save_as)
# !!! vv <---- это не надо
# self.action_Open.triggered.connect(self.file_open())
self.action_Open.triggered.connect(self.file_open)
self.Sound = QSound('sound_button.wav', self)
self.pushButton.clicked.connect(self.Sound.play)
self.action_Quit.triggered.connect(self.Sound.play)
self.menuFile.triggered.connect(self.Sound.play)
self.action_Document.triggered.connect(self.Sound.play)
self.menu_Help.triggered.connect(self.Sound.play)
# ??? self.show()
self.name = "q1363451_save.txt" # !!! "q1363451_save.txt"
# - self.win = Text()
def okno2(self):
# - self.okno = Helped()
self.okno.show()
def file_open(self):
fname = QFileDialog.getOpenFileName(self, 'Open file', '', '*.txt')[0]
# ??? self.win = text.Ui_Text()
# ??? if len(fname) > 0:
if fname: # +++
# !!! vvvvvvvvvvvvvvvv
with open(fname, 'r', encoding='utf-8') as f:
# - f = open(fname, 'r')
# - with f:
text1 = f.read()
self.win.textEdit1.setText(text1)
self.win.show() # +++
# ??? vvvvvvvvvvvv <---- это зачем ???
self.okno2()
def save_as(self):
self.name = QtWidgets.QFileDialog.getSaveFileName(
self, 'Save File', '', '(*.txt')[0]
self.save()
def save(self):
a_field = (
self.a_field.text(),
self.b_field.text(),
self.h_field.text(),
self.as_field.text(),
self.m_field.text(),
self.class_bt.currentText(),
self.class_ar.currentText(),
# - self.answer_text.toPlainText()
# !!! vvvvvvvv <---- # !!!
self.answer_text.toHtml() # +++
)
#print(a_field, sep='\n')
# - if a_field[0] == '' or a_field[1] == '' or a_field[2] == '' or a_field[3] == '' or a_field[4] == ''or a_field[7] == '':
# !!! vvv
if not a_field[0] or not a_field[1] or not a_field[2] or \
not a_field[3] or not a_field[4] or not a_field[7]:
reply = QtWidgets.QMessageBox.information(
None,
"Save",
"Enter the data click the calculate button to save the data",
QtWidgets.QMessageBox.Yes
)
else:
if self.name:
# +++ vvvvvvvvvvvvvvvv
with open(self.name, 'a', encoding='utf-8') as f:
f.write('а= '+a_field[0]+' мм'+'\n'+'b= '+a_field[1] + \
' мм'+'\n'+'h= '+ a_field[2]+' мм'+'\n'+'As= '+ a_field[3]+\
' мм2'+'\n'+'M= '+ a_field[4]+' kH*M'+'\n'+'Класс бетона: '+ \
a_field[5]+'\n'+'Класс арматуры: '+ a_field[6]+'\n'+\
'Прочность арматуры: '+ a_field[7]+'\n \n')
def _dialog(self):
# ???
# dialog = QtWidgets.QDialog()
# dialog.ui = Help.Ui_Help()
# dialog.ui.setupUi(dialog)
# dialog.exec_()
# dialog.show()
self.okno.show() # +++
# +++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
def count(self):
pass
def selected(self):
pass
def closeEvent(self, event):
reply = QMessageBox.question(
None,
'Информация',
"Вы уверены, что хотите уйти?",
QMessageBox.Yes, QMessageBox.No
)
if reply == QMessageBox.Yes:
self.okno.close()
self.win.close()
event.accept()
else:
event.ignore()
# +++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
w = ExampleApp()
w.resize(700, 400)
w.show()
sys.exit(app.exec_())

