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


import sys
from PyQt6.QtWidgets import (QApplication, QWidget, QVBoxLayout, 
                             QHBoxLayout, QLabel, QLineEdit, 
                             QPushButton, QLCDNumber)
from PyQt6.QtCore import Qt
from PyQt6.QtGui import QFont


class MiniCalculator(QWidget):    
    def __init__(self):
        super().__init__()
        self.init_ui()
    
    def init_ui(self):
        self.setWindowTitle("MiniCalculator")
        self.setGeometry(100, 100, 500, 350)

        main_layout = QVBoxLayout()
        
        first_layout = QHBoxLayout()
        first_label = QLabel("Первое число(целое):")
        first_label.setMinimumWidth(150)
        self.number_1 = QLineEdit()
        self.number_1.setPlaceholderText("12")
        first_layout.addWidget(first_label)
        first_layout.addWidget(self.number_1)
        
        second_layout = QHBoxLayout()
        second_label = QLabel("Второе число(целое):")
        second_label.setMinimumWidth(150)
        self.number_2 = QLineEdit()
        self.number_2.setPlaceholderText("0")
        second_layout.addWidget(second_label)
        second_layout.addWidget(self.number_2)
        
        button_layout = QHBoxLayout()
        self.calculate_button = QPushButton("->")
        self.calculate_button.setMaximumWidth(100)
        self.calculate_button.clicked.connect(self.calculate)
        button_layout.addWidget(self.calculate_button)
        button_layout.addStretch()
        
        results_layout = QHBoxLayout()
        
        sum_container = self._create_result_container("Сумма:")
        self.result_sum = sum_container[1]
        
        sub_container = self._create_result_container("Разность:")
        self.result_sub = sub_container[1]
        
        mul_container = self._create_result_container("Произведение:")
        self.result_mul = mul_container[1]
        
        div_container = self._create_result_container("Деление:")
        self.result_div = div_container[1]
        
        quotient_container = self._create_result_container("Частное:")
        self.result_quotient = quotient_container[1]
        
        results_layout.addLayout(sum_container[0])
        results_layout.addLayout(sub_container[0])
        results_layout.addLayout(mul_container[0])
        results_layout.addLayout(div_container[0])
        results_layout.addLayout(quotient_container[0])
        
        main_layout.addLayout(first_layout)
        main_layout.addLayout(second_layout)
        main_layout.addLayout(button_layout)
        main_layout.addSpacing(20)
        main_layout.addLayout(results_layout)
        main_layout.addStretch()
        
        self.setLayout(main_layout)
    
    @staticmethod
    def _create_result_container(label_text: str) -> tuple:
        container = QVBoxLayout()
        label = QLabel(label_text)
        lcd = QLCDNumber()
        lcd.setSegmentStyle(QLCDNumber.SegmentStyle.Filled)
        lcd.setMinimumHeight(60)
        container.addWidget(label)
        container.addWidget(lcd)
        
        return (container, lcd)
    
    def calculate(self):
        try:
            num1_text = self.number_1.text().strip()
            num2_text = self.number_2.text().strip()
            
            if not num1_text or not num2_text:
                self._clear_results()
                return
            
            num1 = int(num1_text)
            num2 = int(num2_text)
            
            sum_result = num1 + num2
            sub_result = num1 - num2
            mul_result = num1 * num2
            
            self.result_sum.display(int(sum_result))
            self.result_sub.display(int(sub_result))
            self.result_mul.display(int(mul_result))
            
            if num2 == 0:
                self.result_div.display("Error")
                self.result_quotient.display("Error")
            else:
                div_result = num1 / num2
                quotient_result = num1 // num2
                
                div_display = f"{div_result:.3f}"
                self.result_div.display(div_display)
                self.result_quotient.display(int(quotient_result))
        
        except ValueError:
            self._show_error()
    
    def _clear_results(self):
        for result_widget in [self.result_sum, self.result_sub, 
                              self.result_mul, self.result_div, 
                              self.result_quotient]:
            result_widget.display(0)
    
    def _show_error(self):
        for result_widget in [self.result_sum, self.result_sub, 
                              self.result_mul, self.result_div, 
                              self.result_quotient]:
            result_widget.display("Error")


def main():
    app = QApplication(sys.argv)
    calculator = MiniCalculator()
    calculator.show()
    sys.exit(app.exec())


if __name__ == '__main__':
    main()