Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/79: Рейтинг темы: голосов - 79, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 09.05.2020
Сообщений: 4
PyQt5

Заказ в Макдональдсе — 2

31.10.2020, 21:09. Показов 19807. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Модифицируйте задачу «Заказ в Макдональдсе».

Добавьте возможность указать не только блюдо, но и количество порций. У каждого блюда есть цена. По умолчанию, если блюдо выбрано, количество становится равным 1. В чеке должна быть отображена следующая информация: блюдо, количество, итоговая стоимость блюда каждого типа и суммарная стоимость заказа.

Код
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import sys
 
from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit, QPushButton, QLabel
from PyQt5.QtWidgets import QCheckBox, QPlainTextEdit
 
 
class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.menu = ['Чизбургер', 'Гамбургер', 'Кока-кола', 'Нагетсы']
        self.initUI()
 
    def initUI(self):
        # Зададим размер и положение нашего виджета,
        self.setGeometry(400, 300, 300, 400)
        self.setWindowTitle('Заказ в Макдаке')
 
        self.c = [QCheckBox(self) for i in self.menu]
 
        # knopka
 
        self.b = QPushButton('Заказать', self)
        self.b.move(10, len(self.c) * 20)
        self.b.clicked.connect(self.test)
        # spisok
        for i in range(len(self.c)):
            self.c[i].setText(self.menu[i])
            self.c[i].move(10, 20 * i)
 
        self.result = QPlainTextEdit(self)
        self.result.setEnabled(False)
        self.result.move(10, 20 * (len(self.c) + 3))
 
    def test(self):
        self.result.clear()
        result = [i.text() for i in self.c if i.isChecked()]
        result.insert(0, 'Ваш заказ\n')
        self.result.appendPlainText('\n'.join(result))
 
 
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    ex.show()
    sys.exit(app.exec())
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.10.2020, 21:09
Ответы с готовыми решениями:

Заказ в Макдональдсе
Напишите программу «Заказ в Макдональдсе» с графическим пользовательским интерфейсом на PyQT. Пользователь должен иметь возможность...

Заказ в Макдональдсе
Посмотрите документацию на QCheckBox и напишите программу «Заказ в Макдональдсе». Пользователь выбирает блюда и нажимает кнопку...

Заказ в Макдональдсе — 2
Условие:Пользователь выбирает блюда, их кол-во и нажимает кнопку «Заказать». Программа показывает ему чек, в котором отображаются только...

1
1 / 1 / 0
Регистрация: 07.01.2023
Сообщений: 3
10.01.2023, 20:30
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
 
from PyQt5.QtWidgets import QApplication, QMainWindow
 
 
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(165, 417)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.cheesburgerBool = QtWidgets.QCheckBox(self.centralwidget)
        self.cheesburgerBool.setGeometry(QtCore.QRect(10, 20, 81, 21))
        self.cheesburgerBool.setObjectName("cheesburgerBool")
        self.gamburgerBool = QtWidgets.QCheckBox(self.centralwidget)
        self.gamburgerBool.setGeometry(QtCore.QRect(10, 50, 81, 21))
        self.gamburgerBool.setObjectName("gamburgerBool")
        self.colaBool = QtWidgets.QCheckBox(self.centralwidget)
        self.colaBool.setGeometry(QtCore.QRect(10, 80, 81, 21))
        self.colaBool.setObjectName("colaBool")
        self.stripsBool = QtWidgets.QCheckBox(self.centralwidget)
        self.stripsBool.setGeometry(QtCore.QRect(10, 110, 81, 21))
        self.stripsBool.setObjectName("stripsBool")
        self.cheesburgers = QtWidgets.QLineEdit(self.centralwidget)
        self.cheesburgers.setGeometry(QtCore.QRect(100, 20, 41, 20))
        self.cheesburgers.setObjectName("cheesburgers")
        self.gamburgers = QtWidgets.QLineEdit(self.centralwidget)
        self.gamburgers.setGeometry(QtCore.QRect(100, 50, 41, 20))
        self.gamburgers.setObjectName("gamburgers")
        self.colas = QtWidgets.QLineEdit(self.centralwidget)
        self.colas.setGeometry(QtCore.QRect(100, 80, 41, 20))
        self.colas.setObjectName("colas")
        self.stripses = QtWidgets.QLineEdit(self.centralwidget)
        self.stripses.setGeometry(QtCore.QRect(100, 110, 41, 20))
        self.stripses.setObjectName("stripses")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(10, 140, 121, 23))
        self.pushButton.setObjectName("pushButton")
        self.plainTextEdit = QtWidgets.QPlainTextEdit(self.centralwidget)
        self.plainTextEdit.setGeometry(QtCore.QRect(10, 170, 131, 211))
        self.plainTextEdit.setObjectName("plainTextEdit")
        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
 
        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
 
    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "Заказ в Маккдональдсе"))
        self.cheesburgerBool.setText(_translate("MainWindow", "Чизбургер"))
        self.gamburgerBool.setText(_translate("MainWindow", "Гамбургер"))
        self.colaBool.setText(_translate("MainWindow", "Кола"))
        self.stripsBool.setText(_translate("MainWindow", "Нагетсы"))
        self.pushButton.setText(_translate("MainWindow", "Заказать"))
 
 
class MyWidget(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.pushButton.clicked.connect(self.getZakaz)
        self.gamburgers.setText('1')
        self.cheesburgers.setText('1')
        self.colas.setText('1')
        self.stripses.setText('1')
 
    def getZakaz(self):
        self.itogText = 'Ваш заказ \n '
        self.sumZakaz = 0
 
        self.gambNeed = self.gamburgerBool.checkState()
        self.cheesNeed = self.cheesburgerBool.checkState()
        self.colaNeed = self.colaBool.checkState()
        self.stripsNeed = self.stripsBool.checkState()
 
        if self.gambNeed == 2:
            self.itogText += f"\nГамбургер---{self.gamburgers.text()}---{int(self.gamburgers.text()) * 60}"
            self.sumZakaz += int(self.gamburgers.text()) * 60
 
        if self.cheesNeed == 2:
            self.itogText += f"\nЧизбургер---{self.cheesburgers.text()}---{int(self.cheesburgers.text()) * 55}"
            self.sumZakaz += int(self.cheesburgers.text()) * 55
 
        if self.colaNeed == 2:
            self.itogText += f"\nКола---{self.colas.text()}---{int(self.colas.text()) * 30}"
            self.sumZakaz += int(self.colas.text()) * 30
 
        if self.stripsNeed == 2:
            self.itogText += f"\nНагетсы---{self.stripses.text()}---{int(self.stripses.text()) * 45}"
            self.sumZakaz += int(self.stripses.text()) * 45
 
 
        self.plainTextEdit.setPlainText(self.itogText + f"\n\nИтого - {self.sumZakaz}")
 
 
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyWidget()
    ex.show()
    sys.exit(app.exec_())
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.01.2023, 20:30
Помогаю со студенческими работами здесь

Создать родительский класс «Заказ» и дочерние классы: «Обычный заказ» и «Срочный заказ»
Создать родительский класс «Заказ» (дата, время, идентификатор) и дочерние классы: • «Обычный заказ»; • «Срочный заказ» (курьер, дата...

Нужен совет: таблицы Заказ автомобилей удалить записи, в которых заказ не оплачен
Здравствуйте, нужно небольшой совет в двух запросах: Один: Для вычисления расчетных полей отчетов Стоимость и Цена воспользоваться...

Как разделить на разные заказы заказ, в котором товары в наличии и под заказ
Клиент кладет в корзину товары, причем есть товары в наличии и есть товары со статусом под заказ. Все они попадают в одну корзину, а дальше...

{(14, 21)}: Неоднозначное поле "Заказ.Ссылка" ПО Оплата.Заказ = <<?>>Заказ.Ссылка
Здравствуйте! Я создал печатную форму документа Оплаты. Билеты должны формироваться в соответствии с данными в табличной части Заказа. ...

Не заполняется табчасть "Заказ поставщику" на основании "Заказ клиента" в УТ11
Доброго времени суток господа программисты ! Проблема следующего характера настраиваю УТ 11.1.9.70. Не получается добиться чтобы при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru