62 lines
1.4 KiB
Python
Executable File
62 lines
1.4 KiB
Python
Executable File
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()
|