Необходимо задействовать кнопку "Обновить" для сброса данных ввода, вывода и составленного графика

Имеется кнопка "Обновить", программа подсчета выдает график и результаты по кнопке "Произвести расчёт", а при необходимости нового ввода нажимая кнопку "Обновить" и все поля ввода, вывода и сам график должен обратиться исходное состояние, для нового ввода всех данных.

Файл с кодом: https://drive.google.com/file/d/1Degd0SZLgokpHD6l0S6OvwfQeKE0EfWd/view?usp=sharing


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

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

Если я вас правильно понял, то смотрим метод clear_all(self).

void QLineEdit::clear()

Очищает содержимое строки редактирования.

...

import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *

import pyqtgraph as pg
from pyqtgraph import PlotWidget, plot


class Ui_MainWindow(object):

    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1036, 590)
        MainWindow.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
        MainWindow.setStyleSheet(
            "background:qconicalgradient(cx:0.488636, cy:0.602, angle:179.8, stop:0.329545 rgba(0, 0, 0, 255), stop:0.852273 rgba(255, 255, 255, 255))")
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(255, 1, 641, 571))
        self.label.setStyleSheet("background:none;")
        self.label.setText("")

        self.label.setObjectName("label")
        self.label_8 = QtWidgets.QLabel(self.centralwidget)
        self.label_8.setGeometry(QtCore.QRect(730, 70, 41, 31))
        self.label_8.setStyleSheet("\n"
                                   "font: 15pt \"TypoUpright BT\";\n"
                                   "color:#ffb703;\n"
                                   "background-color:none;")
        self.label_8.setObjectName("label_8")
        self.label_5 = QtWidgets.QLabel(self.centralwidget)
        self.label_5.setGeometry(QtCore.QRect(10, 220, 491, 31))
        self.label_5.setStyleSheet("\n"
                                   "font: 20pt \"TypoUpright BT\";\n"
                                   "color:#ffb703;\n"
                                   "background-color:#000;")
        self.label_5.setObjectName("label_5")
        self.input_b = QtWidgets.QLineEdit(self.centralwidget)
        self.input_b.setGeometry(QtCore.QRect(590, 120, 131, 31))
        self.input_b.setStyleSheet("color:#ffb703;\n"
                                   "font: 20pt \"MS Shell Dlg 2\";\n"
                                   "background-color:#000;\n"
                                   "border- radius : 30;\n"
                                   "")
        self.input_b.setObjectName("input_b")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(780, 20, 251, 41))
        font = QtGui.QFont()
        font.setFamily("MS Shell Dlg 2")
        font.setPointSize(20)
        font.setBold(False)
        font.setItalic(False)
        font.setWeight(9)
        self.pushButton.setFont(font)
        self.pushButton.setStyleSheet("QPushButton{\n"
                                      "font: 75 20pt \"MS Shell Dlg 2\";\n"
                                      "color:#fff;\n"
                                      "background-color:#000;\n"
                                      "border- radius: 30;\n"
                                      "}\n"
                                      "QPushButton:hover{\n"
                                      "font: 20pt \"TypoUpright BT\";\n"
                                      "color:#ffb703;\n"
                                      "background-color:#35362d;\n"
                                      "border- radius: 30;\n"
                                      "}\n"
                                      "QPushButton:pressed{\n"
                                      "font: 20pt \"TypoUpright BT\";\n"
                                      "color:#deb316;\n"
                                      "background-color:#8c897b;\n"
                                      "border- radius: 30;\n"
                                      "}\n"
                                      "\n"
                                      "\n"
                                      "piqtgraph")
        self.pushButton.setObjectName("pushButton")
        self.input_PRO = QtWidgets.QLineEdit(self.centralwidget)
        self.input_PRO.setGeometry(QtCore.QRect(590, 220, 131, 31))
        self.input_PRO.setStyleSheet("color:#ffb703;\n"
                                     "font: 20pt \"MS Shell Dlg 2\";\n"
                                     "background-color:#000;\n"
                                     "border- radius : 30;\n"
                                     "")
        self.input_PRO.setObjectName("input_PRO")
        self.label_2 = QtWidgets.QLabel(self.centralwidget)
        self.label_2.setGeometry(QtCore.QRect(10, 70, 361, 31))
        self.label_2.setStyleSheet("\n"
                                   "font: 20pt \"TypoUpright BT\";\n"
                                   "color:#ffb703;\n"
                                   "background-color:#000;")
        self.label_2.setObjectName("label_2")
        self.label_4 = QtWidgets.QLabel(self.centralwidget)
        self.label_4.setGeometry(QtCore.QRect(10, 170, 531, 31))
        self.label_4.setStyleSheet("\n"
                                   "font: 20pt \"TypoUpright BT\";\n"
                                   "color:#ffb703;\n"
                                   "background-color:#000;")
        self.label_4.setObjectName("label_4")
        self.input_q = QtWidgets.QLineEdit(self.centralwidget)
        self.input_q.setGeometry(QtCore.QRect(590, 20, 131, 31))
        self.input_q.setStyleSheet("color:#ffb703;\n"
                                   "font: 20pt \"MS Shell Dlg 2\";\n"
                                   "background-color:#000;\n"
                                   "border- radius: 60;\n"
                                   "")
        self.input_q.setText("")
        self.input_q.setObjectName("input_q")
        self.label_3 = QtWidgets.QLabel(self.centralwidget)
        self.label_3.setGeometry(QtCore.QRect(10, 20, 451, 31))
        self.label_3.setAutoFillBackground(False)
        self.label_3.setStyleSheet("font: 20pt \"TypoUpright BT\";\n"
                                   "color:#ffb703;\n"
                                   "background-color:#000;\n"
                                   "")
        self.label_3.setObjectName("label_3")
        self.input_dp = QtWidgets.QLineEdit(self.centralwidget)
        self.input_dp.setGeometry(QtCore.QRect(590, 70, 131, 31))
        self.input_dp.setStyleSheet("color:#ffb703;\n"
                                    "font: 20pt \"MS Shell Dlg 2\";\n"
                                    "background-color:#000;\n"
                                    "border- radius : 30;\n"
                                    "")
        self.input_dp.setObjectName("input_dp")
        self.input_Pbr = QtWidgets.QLineEdit(self.centralwidget)
        self.input_Pbr.setGeometry(QtCore.QRect(590, 170, 131, 31))
        self.input_Pbr.setStyleSheet("color:#ffb703;\n"
                                     "font: 20pt \"MS Shell Dlg 2\";\n"
                                     "background-color:#000;\n"
                                     "border- radius : 30;\n"
                                     "")
        self.input_Pbr.setObjectName("input_Pbr")
        self.label_7 = QtWidgets.QLabel(self.centralwidget)
        self.label_7.setGeometry(QtCore.QRect(730, 20, 31, 31))
        self.label_7.setStyleSheet("\n"
                                   "font: 15pt \"TypoUpright BT\";\n"
                                   "color:#ffb703;\n"
                                   "background-color:none;")
        self.label_7.setObjectName("label_7")
        self.label_9 = QtWidgets.QLabel(self.centralwidget)
        self.label_9.setGeometry(QtCore.QRect(730, 120, 31, 31))
        self.label_9.setStyleSheet("\n"
                                   "font: 15pt \"TypoUpright BT\";\n"
                                   "color:#ffb703;\n"
                                   "background-color:none;")
        self.label_9.setObjectName("label_9")
        self.label_11 = QtWidgets.QLabel(self.centralwidget)
        self.label_11.setGeometry(QtCore.QRect(10, 120, 371, 31))
        self.label_11.setStyleSheet("\n"
                                    "font: 20pt \"TypoUpright BT\";\n"
                                    "color:#ffb703;\n"
                                    "background-color:#000;")
        self.label_11.setObjectName("label_11")
        self.label_12 = QtWidgets.QLabel(self.centralwidget)
        self.label_12.setGeometry(QtCore.QRect(10, 445, 351, 31))
        self.label_12.setStyleSheet("\n"
                                    "font: 15pt \"TypoUpright BT\";\n"
                                    "color:#fab505;\n"
                                    "background-color:#fff;")
        self.label_12.setObjectName("label_12")
        self.label_13 = QtWidgets.QLabel(self.centralwidget)
        self.label_13.setGeometry(QtCore.QRect(10, 395, 361, 31))
        self.label_13.setStyleSheet("\n"
                                    "font: 15pt \"TypoUpright BT\";\n"
                                    "color:#fab505;\n"
                                    "background-color:#fff;")
        self.label_13.setObjectName("label_13")
        self.label_14 = QtWidgets.QLabel(self.centralwidget)
        self.label_14.setGeometry(QtCore.QRect(10, 345, 361, 31))
        self.label_14.setStyleSheet("\n"
                                    "font: 15pt \"TypoUpright BT\";\n"
                                    "color:#fab505;\n"
                                    "background-color:#fff;fff")
        self.label_14.setObjectName("label_14")
        self.label_15 = QtWidgets.QLabel(self.centralwidget)
        self.label_15.setGeometry(QtCore.QRect(10, 495, 361, 31))
        self.label_15.setStyleSheet("\n"
                                    "font: 15pt \"TypoUpright BT\";\n"
                                    "color:#fab800;\n"
                                    "background-color:#fff")
        self.label_15.setObjectName("label_15")
        self.label_10 = QtWidgets.QLabel(self.centralwidget)
        self.label_10.setGeometry(QtCore.QRect(810, 60, 399, 269))
        self.label_10.setStyleSheet("background:none")
        self.label_10.setText("")

        self.label_10.setObjectName("label_10")
        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_2.setGeometry(QtCore.QRect(780, 70, 251, 41))
        font = QtGui.QFont()
        font.setFamily("MS Shell Dlg 2")
        font.setPointSize(20)
        font.setBold(False)
        font.setItalic(False)
        font.setWeight(9)
        self.pushButton_2.setFont(font)
        self.pushButton_2.setStyleSheet("QPushButton{\n"
                                        "font: 75 20pt \"MS Shell Dlg 2\";\n"
                                        "color:#fff;\n"
                                        "background-color:#000;\n"
                                        "border- radius: 30;\n"
                                        "}\n"
                                        "QPushButton:hover{\n"
                                        "font: 20pt \"TypoUpright BT\";\n"
                                        "color:#f3f700;\n"
                                        "background-color:#35362d;\n"
                                        "border- radius: 30;\n"
                                        "}\n"
                                        "QPushButton:pressed{\n"
                                        "font: 20pt \"TypoUpright BT\";\n"
                                        "color:#deb316;\n"
                                        "background-color:#8c897b;\n"
                                        "border- radius: 30;\n"
                                        "}\n"
                                        "\n"
                                        "\n"
                                        "piqtgraph")
        self.pushButton_2.setObjectName("pushButton_2")
        self.output_k = QtWidgets.QLabel(self.centralwidget)
        self.output_k.setGeometry(QtCore.QRect(340, 445, 71, 31))
        self.output_k.setStyleSheet("color:#fab505;\n"
                                    "font: 22pt \"MS Shell Dlg 2\";\n"
                                    "border- radius : 30;\n"
                                    "background:qradialgradient(spread:pad, cx:0.5, cy:0.5, radius:0.952, fx:0.5, fy:0.5, stop:0.505682 rgba(255, 255, 255, 255), stop:0.642045 rgba(0, 0, 0, 255))")
        self.output_k.setText("")
        self.output_k.setObjectName("output_k")
        self.output_R = QtWidgets.QLabel(self.centralwidget)
        self.output_R.setGeometry(QtCore.QRect(340, 395, 71, 31))
        self.output_R.setStyleSheet("color:#fab505;\n"
                                    "font: 22pt \"MS Shell Dlg 2\";\n"
                                    "border- radius : 30;\n"
                                    "background:qradialgradient(spread:pad, cx:0.5, cy:0.5, radius:0.952, fx:0.5, fy:0.5, stop:0.505682 rgba(255, 255, 255, 255), stop:0.642045 rgba(0, 0, 0, 255))")
        self.output_R.setText("")
        self.output_R.setObjectName("output_R")
        self.output_Pp = QtWidgets.QLabel(self.centralwidget)
        self.output_Pp.setGeometry(QtCore.QRect(340, 345, 71, 31))
        self.output_Pp.setStyleSheet("color:#fab505;\n"
                                     "font: 22pt \"MS Shell Dlg 2\";\n"
                                     "border- radius : 30;\n"
                                     "background:qradialgradient(spread:pad, cx:0.5, cy:0.5, radius:0.952, fx:0.5, fy:0.5, stop:0.505682 rgba(255, 255, 255, 255), stop:0.642045 rgba(0, 0, 0, 255))")
        self.output_Pp.setText("")
        self.output_Pp.setObjectName("output_Pp")
        self.output_Pie = QtWidgets.QLabel(self.centralwidget)
        self.output_Pie.setGeometry(QtCore.QRect(340, 495, 71, 31))
        self.output_Pie.setStyleSheet("color:#fab505;\n"
                                      "font: 22pt \"MS Shell Dlg 2\";\n"
                                      "border- radius : 30;\n"
                                      "background:qradialgradient(spread:pad, cx:0.5, cy:0.5, radius:0.952, fx:0.5, fy:0.5, stop:0.505682 rgba(255, 255, 255, 255), stop:0.642045 rgba(0, 0, 0, 255))")
        self.output_Pie.setText("")
        self.output_Pie.setObjectName("output_Pie")
        self.output_k_2 = QtWidgets.QLabel(self.centralwidget)
        self.output_k_2.setGeometry(QtCore.QRect(330, 345, 81, 41))
        self.output_k_2.setStyleSheet("\n"
                                      "background:#000")
        self.output_k_2.setText("")
        self.output_k_2.setObjectName("output_k_2")
        self.output_k_3 = QtWidgets.QLabel(self.centralwidget)
        self.output_k_3.setGeometry(QtCore.QRect(330, 395, 81, 41))
        self.output_k_3.setStyleSheet("\n"
                                      "background:#000")
        self.output_k_3.setText("")
        self.output_k_3.setObjectName("output_k_3")
        self.output_k_4 = QtWidgets.QLabel(self.centralwidget)
        self.output_k_4.setGeometry(QtCore.QRect(330, 445, 81, 41))
        self.output_k_4.setStyleSheet("\n"
                                      "background:#000")
        self.output_k_4.setText("")
        self.output_k_4.setObjectName("output_k_4")
        self.output_k_5 = QtWidgets.QLabel(self.centralwidget)
        self.output_k_5.setGeometry(QtCore.QRect(330, 495, 81, 41))
        self.output_k_5.setStyleSheet("\n"
                                      "background:#000")
        self.output_k_5.setText("")
        self.output_k_5.setObjectName("output_k_5")
        self.graphicsView = PlotWidget(self.centralwidget)
        self.graphicsView.setGeometry(QtCore.QRect(620, 270, 391, 262))
        self.graphicsView.setStyleSheet("Background:none")
        self.graphicsView.setObjectName("graphicsView")
        self.label_6 = QtWidgets.QLabel(self.centralwidget)
        self.label_6.setGeometry(QtCore.QRect(690, 540, 261, 31))
        self.label_6.setStyleSheet("font: 15pt \"TypoUpright BT\";\n"
                                   "color:#fab505;\n"
                                   "background:none\n"
                                   "")
        self.label_6.setObjectName("label_6")
        self.label_17 = QtWidgets.QLabel(self.centralwidget)
        self.label_17.setGeometry(QtCore.QRect(420, 395, 31, 31))
        self.label_17.setStyleSheet("\n"
                                    "font: 15pt \"TypoUpright BT\";\n"
                                    "color:#ffb703;\n"
                                    "background-color:none;")
        self.label_17.setObjectName("label_17")
        self.label_18 = QtWidgets.QLabel(self.centralwidget)
        self.label_18.setGeometry(QtCore.QRect(420, 445, 61, 31))
        self.label_18.setStyleSheet("\n"
                                    "font: 15pt \"TypoUpright BT\";\n"
                                    "color:#ffb703;\n"
                                    "background-color:none;")
        self.label_18.setObjectName("label_18")
        self.label_19 = QtWidgets.QLabel(self.centralwidget)
        self.label_19.setGeometry(QtCore.QRect(475, 440, 31, 31))
        self.label_19.setStyleSheet("\n"
                                    "font: 15pt \"TypoUpright BT\";\n"
                                    "color:#ffb703;\n"
                                    "background-color:none;")
        self.label_19.setObjectName("label_19")
        self.label_16 = QtWidgets.QLabel(self.centralwidget)
        self.label_16.setGeometry(QtCore.QRect(610, 260, 411, 282))
        self.label_16.setStyleSheet("background:#ffb739")
        self.label_16.setText("")
        self.label_16.setObjectName("label_16")
        self.label.raise_()
        self.label_16.raise_()
        self.label_8.raise_()
        self.label_5.raise_()
        self.input_b.raise_()
        self.pushButton.raise_()
        self.input_PRO.raise_()
        self.label_2.raise_()
        self.label_4.raise_()
        self.input_q.raise_()
        self.label_3.raise_()
        self.input_dp.raise_()
        self.input_Pbr.raise_()
        self.label_7.raise_()
        self.label_9.raise_()
        self.label_11.raise_()
        self.label_12.raise_()
        self.label_13.raise_()
        self.label_14.raise_()
        self.label_15.raise_()
        self.label_10.raise_()
        self.pushButton_2.raise_()
        self.output_k_2.raise_()
        self.output_k_3.raise_()
        self.output_R.raise_()
        self.output_Pp.raise_()
        self.output_k_5.raise_()
        self.graphicsView.raise_()
        self.output_k_4.raise_()
        self.output_Pie.raise_()
        self.output_k.raise_()
        self.label_17.raise_()
        self.label_18.raise_()
        self.label_19.raise_()
        self.label_6.raise_()
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 1036, 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.setWindowIcon(QIcon('nuclear.png'))
        self.label_8.setText(_translate("MainWindow", ""))
        self.label_5.setText(_translate("MainWindow", "Введите вероятность  :"))
        self.pushButton.setText(_translate("MainWindow", "Произвести расчет"))
        self.label_2.setText(_translate("MainWindow", "Введите плотность  :"))
        self.label_4.setText(_translate("MainWindow", "Введите вероятность 2  :"))
        self.label_3.setText(_translate("MainWindow", "Введите давление :"))
        self.label_7.setText(_translate("MainWindow", ""))
        self.label_9.setText(_translate("MainWindow", ""))
        self.label_11.setText(_translate("MainWindow", "Введите объем :"))
        self.label_12.setText(_translate("MainWindow", "Коэффициент   :"))
        self.label_13.setText(_translate("MainWindow", "Радиус з   :"))
        self.label_14.setText(_translate("MainWindow", "Вероятность 3   :"))
        self.label_15.setText(_translate("MainWindow", "Эффект :"))
        self.pushButton_2.setText(_translate("MainWindow", "Обновить"))
        self.label_6.setText(_translate("MainWindow", "График зависимости  "))
        self.label_17.setText(_translate("MainWindow", ""))
        self.label_18.setText(_translate("MainWindow", ""))
        self.label_19.setText(_translate("MainWindow", ""))


class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)

        self.pushButton.clicked.connect(self.calc)

# +++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
        self.pushButton_2.clicked.connect(self.clear_all)

    def clear_all(self):
        self.input_q.clear()
        self.input_dp.clear()
        self.input_b.clear()
        self.input_PRO.clear()
        self.input_Pbr.clear() 

        self.output_k.clear()
        self.output_R.clear()
        self.output_Pp.clear()
        self.output_Pie.clear()
        
        self.graphicsView.clear()        
# +++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^    

    def calc(self):
        q = self.input_q.text()
        dp = self.input_dp.text()
        b = self.input_b.text()
        PRO = self.input_PRO.text()
        Pbr = self.input_Pbr.text()

        if not q or not dp or not b or not PRO or not Pbr:
            msg = QMessageBox.information(None,
                                          'Внимание',
                                          'Заполните все поля ввода.'
                                          )
            return

        try:
            q = float(q)
            dp = float(dp)
            b = float(b)
            PRO = float(PRO)
            Pbr = float(Pbr)
        except Exception as e:
            msg = QMessageBox.information(None,
                                          'Внимание',
                                          f'Заполните правильно поля ввода \n {e}.'
                                          )
            return

        if b == 0 or PRO == 0 or Pbr == 0:
            msg = QMessageBox.information(None,
                                          'Внимание',
                                          'division by zero.'
                                          )
            return

        k = self._k(dp)
        self.output_k.setText(f'{k:.3f}')

        R = self._R(k, q)
        self.output_R.setText(f'{R:.3f}')

        Pp = self._Pp(R, b)
        self.output_Pp.setText(f'{Pp:.3f}')

        Pie = self._Pie(Pp, Pbr, PRO)
        self.output_Pie.setText(f'{Pie:.3f}')

        R01 = self._R01(k, q)
        Pp01 = self._Pp01(R01, b)
        Pie01 = self._Pie01(Pp01, Pbr, PRO)

        x = [0.1 * q,  q]
        y = [Pie01, Pie]

        self.pg_calc(x, y)

    def _Pp(self, R, b):
        op1 = -(R * R) / (2 * b * b)
        op2 = 2.7182818284 ** op1
        op3 = 1 - op2
        return op3

    def _Pie(self, Pp, Pbr, PRO):
        op1 = Pp * Pbr * PRO
        return op1

    def _R(self, k, q):
        op1 = k * (q ** (1. / 3))
        return op1

    def _k(self, dp):
        op1 = 30 + 9.81 * dp
        op2 = 29.4 * dp + 10
        return op1 / op2

    def _R01(self, k, q):
        op1 = (0.1 * q)
        op2 = k * (op1 ** (1. / 3))
        return op2

    def _Pp01(self, R01, b):
        op1 = -(R01 * R01) / (2 * b * b)
        op2 = 2.7182818284 ** op1
        op3 = 1 - op2
        return op3

    def _Pie01(self, Pp01, Pbr, PRO):
        op1 = Pp01 * Pbr * PRO
        return op1

    def pg_calc(self, x, y):
        self.graphicsView.clear()
        self.graphicsView.plot(x, y)
        
    #def new(self, x, y):
        #self.graphicsView.clear()
        #self.graphicsView.plot(x, y)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = MainWindow()
    w.show()
    sys.exit(app.exec_())

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

→ Ссылка