Загрузка данных


from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QPushButton, QLineEdit, QLabel, QFrame
import sys


class Window(QWidget):
    def __init__(self):
        super().__init__()

        self.setGeometry(600, 200, 500, 300)
        self.setWindowTitle("Конвертор")

        hbox = QVBoxLayout()
        vbox = QHBoxLayout()
        u = QVBoxLayout()
        man = QHBoxLayout()
        men = QHBoxLayout()
        beb = QHBoxLayout()
        n = QLabel("Введите курс, цену в долларах и щёлкните на кнопке Пересчёт")
        self.a = QLineEdit()
        self.b = QLineEdit()
        ga = QLabel("Цена (USD)")
        gb = QLabel("Курс (RUB/USD)")

        btn1 = QPushButton("YEP?")
        btn2 = QPushButton("YEP.")

        self.fr = QLabel("yep-yep!")

        beb.addSpacing(5)
        beb.addWidget(btn1)
        beb.addSpacing(5)
        beb.addWidget(btn2)
        beb.addSpacing(180)

        man.addWidget(self.a)
        man.addWidget(ga)
        men.addWidget(self.b)
        men.addWidget(gb)
        u.addLayout(man)
        u.addSpacing(10)
        u.addLayout(men)

        hbox.addSpacing(50)
        hbox.addWidget(n)
        hbox.addLayout(u)
        hbox.addWidget(self.fr)
        hbox.addLayout(beb)
        hbox.addSpacing(50)

        vbox.addSpacing(30)
        vbox.addLayout(hbox)
        vbox.addSpacing(30)

        frame = QFrame()
        frame.setLayout(vbox)
        frame.setStyleSheet("""
            QFrame {
                border: 1px solid blue;
                border-radius: 12px;
                background-color: #B0E0E6;
            }
            QLabel {
                color: #003366;
            }
            QPushButton {
                color: white;
                background-color: #4682B4;
                border: 1px solid #003366;
                border-radius: 6px;
                padding: 4px 10px;
            }
            QPushButton:hover {
                background-color: #5A9BD5;
            }
            QPushButton:pressed {
                background-color: #003366;
            }
        """)

        outer = QVBoxLayout()
        outer.addWidget(frame)
        self.setLayout(outer)

        btn1.clicked.connect(self.on_convert)
        btn2.clicked.connect(self.close)

    def on_convert(self):
        text_a = self.a.text().strip().replace(",", ".")
        text_b = self.b.text().strip().replace(",", ".")

        if not text_a or not text_b:
            self.fr.setText("Введите оба числа!")
            return

        try:
            anum = float(text_a)
            bnum = float(text_b)
        except ValueError:
            self.fr.setText("Это не числа!")
            return

        rq = bnum * anum
        self.fr.setText(f"yep-yep! {rq:.2f} RUB")


app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec())