import sys from PyQt6.QtWidgets import ( QApplication, QWidget, QHBoxLayout, QSpinBox, QLabel, QLineEdit, ) from PyQt6.QtGui import QFont class Window(QWidget): def __init__(self) -> None: super().__init__() self.setGeometry(*(500,) * 4) self.setWindowTitle("Окно") self.price = 300 self.amount = 0 hbox = QHBoxLayout() self.line_edit = QLineEdit(str(self.price)) self.line_edit.setFont(QFont("Times", 14)) self.spin_box = QSpinBox() self.spin_box.valueChanged.connect(self.handle_spin_box) self.result = QLabel(str(self.total)) hbox.addWidget(self.line_edit) hbox.addWidget(self.spin_box) hbox.addWidget(self.result) self.setLayout(hbox) def handle_spin_box(self) -> None: try: self.price = int(self.line_edit.text()) except ValueError: return self.amount = self.spin_box.value() self.result.setText(str(self.total)) @property def total(self) -> int: return self.amount * self.price def handle_line_edit(self) -> None: pass def main() -> None: app = QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec()) if __name__ == "__main__": main()