Написал код, решение квадратного уровнения. Запускаю, выполнение завершается без ошибок, но и результатов выполнения нет. Подскажите что не так?

Рейтинг: 1Ответов: 1Опубликовано: 03.02.2023
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QVBoxLayout, QPushButton
import math

class QuadraticEquationSolver(QWidget):
    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        a_label = QLabel("Коэффициент a:")
        b_label = QLabel("Коэффициент b:")
        c_label = QLabel("Коэффициент c:")
        self.a_edit = QLineEdit()
        self.b_edit = QLineEdit()
        self.c_edit = QLineEdit()
        solve_button = QPushButton("Решить")
        solve_button.clicked.connect(self.solve)
        self.result_label = QLabel("")

        layout = QVBoxLayout()
        layout.addWidget(a_label)
        layout.addWidget(self.a_edit)
        layout.addWidget(b_label)
        layout.addWidget(self.b_edit)
        layout.addWidget(c_label)
        layout.addWidget(self.c_edit)
        layout.addWidget(solve_button)
        layout.addWidget(self.result_label)

        self.setLayout(layout)
        self.setWindowTitle("Решение квадратного уравнения")

    def solve(self):
        a = float(self.a_edit.text())
        b = float(self.b_edit.text())
        c = float(self.c_edit.text())
        discriminant = b**2 - 4*a*c
        if discriminant < 0:
            self.result_label.setText("Решений нет")
        elif discriminant == 0:
            x = -b / (2 * a)
            self.result_label.setText("Единственный корень: {}".format(x))
        else:
            x1 = (-b + math.sqrt(discriminant)) / (2 * a)
            x2 = (-b - math.sqrt(discriminant)) / (2 * a)
            self.result_label.setText("Корни: {} и {}".format(x1, x2))

if __name__ == '__main__':
    app = QApplication(sys.argv)
    solver = QuadraticEquationSolver()
   


   

Ответы

▲ 0

Вы забыли сказать виджету отобразиться.
В конце метода init_ui напишите self.show().