Розробити форму замовлення піци з різними начинками та різних розмірів:


У конструкторі Designer потрібно створити такі компоненти:


Скористаємось початковою заготовкою

from PyQt5 import QtWidgets, uic
import sys
from PyQt5.QtGui import *

class Ui(QtWidgets.QMainWindow):
    def __init__(self):
        super(Ui, self).__init__()
        uic.loadUi('pizza.ui', self)
        self.show()
app = QtWidgets.QApplication(sys.argv)
window = Ui()
app.exec_()


До цієї програми потрібно додати опис компонентів форми

        self.pushButton = self.findChild(QtWidgets.QPushButton, 'pushButton')
        self.pushButton.clicked.connect(self.buttonPressed)
        self.label = self.findChild(QtWidgets.QLabel, 'label')
        self.radioButton = self.findChild(QtWidgets.QRadioButton, 'radioButton')
        self.checkBox = self.findChild(QtWidgets.QCheckBox, 'checkBox')


Та створити метод обробки для клацання кнопки:

    def buttonPressed(self):
        price=20

        self.label.setText(str(price))

Перед тим, як виводити остаточну вартість піци, потрібно врахувати обрані начинки та розмір піци.


Вартість піци обчислюється за принципом: основа коштує 20 гривень, кожна начинка додає до вартості певну суму, якщо цю начинку позначено:

if self.checkBox.isChecked():
        price+=15

Таким же чином потрібно обробляти всі прапорці, розміщені на формі (checkBox_2, checkBox_3, checkBox_4, checkBox_5, checkBox_6, checkBox_7), і залежно від того, яка це начинка, до загальної вартості потрібно додавати певну суму. 


Залежно від обраного розміру піци регулюється остаточна вартість. Якщо піца мала, то потрібно вартість помножити на коефіціент 0,75. Якщо велика, то навпаки, на 1,25.

if self.radioButton.isChecked():  
            price*=0.75
Last modified: Wednesday, 10 July 2024, 6:51 AM