Python KFC點餐系統
KFC點餐系統 廢話不多說,直接上程式碼,首先是介面的程式碼
- 主食介面
from PyQt5 import QtCore, QtGui, QtWidgets class ZS(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(719, 532) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.ZS = QtWidgets.QLabel(self.centralwidget) self.ZS.setGeometry(QtCore.QRect(10, 20, 71, 31)) self.ZS.setObjectName("ZS") self.ZJWB = QtWidgets.QLabel(self.centralwidget) self.ZJWB.setGeometry(QtCore.QRect(80, 50, 131, 191)) self.ZJWB.setObjectName("ZJWB") self.ZJTB = QtWidgets.QLabel(self.centralwidget) self.ZJTB.setGeometry(QtCore.QRect(300, 50, 131, 191)) self.ZJTB.setObjectName("ZJTB") self.Z_Price1 = QtWidgets.QLabel(self.centralwidget) self.Z_Price1.setGeometry(QtCore.QRect(80, 250, 81, 16)) self.Z_Price1.setObjectName("Z_Price1") self.Z_Price2 = QtWidgets.QLabel(self.centralwidget) self.Z_Price2.setGeometry(QtCore.QRect(310, 250, 81, 16)) self.Z_Price2.setObjectName("Z_Price2") self.ZOrder1 = QtWidgets.QSpinBox(self.centralwidget) self.ZOrder1.setGeometry(QtCore.QRect(90, 280, 42, 22)) self.ZOrder1.setObjectName("ZOrder1") self.ZOrder2 = QtWidgets.QSpinBox(self.centralwidget) self.ZOrder2.setGeometry(QtCore.QRect(310, 280, 42, 22)) self.ZOrder2.setObjectName("ZOrder2") self.pushButton = QtWidgets.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(540, 400, 75, 23)) self.pushButton.setObjectName("pushButton") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 719, 23)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) 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", "MainWindow")) self.ZS.setText(_translate("MainWindow", ">漢堡主食:")) self.ZJWB.setText(_translate("MainWindow", "巨無霸")) self.ZJTB.setText(_translate("MainWindow", "雞腿堡")) self.Z_Price1.setText(_translate("MainWindow", "20.0元/份")) self.Z_Price2.setText(_translate("MainWindow", "20.0元/份")) self.pushButton.setText(_translate("MainWindow", "加入清單"))
- 活動介面
# -*- coding: utf-8 -*- from PyQt5 import QtCore, QtGui, QtWidgets class HD(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(719, 532) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.ZXHD = QtWidgets.QLabel(self.centralwidget) self.ZXHD.setGeometry(QtCore.QRect(10, 20, 71, 31)) self.ZXHD.setObjectName("ZXHD") self.HZJPJ = QtWidgets.QLabel(self.centralwidget) self.HZJPJ.setGeometry(QtCore.QRect(80, 50, 131, 191)) self.HZJPJ.setObjectName("HZJPJ") self.HJCTZ = QtWidgets.QLabel(self.centralwidget) self.HJCTZ.setGeometry(QtCore.QRect(300, 50, 131, 191)) self.HJCTZ.setObjectName("HJCTZ") self.HWSJ = QtWidgets.QLabel(self.centralwidget) self.HWSJ.setGeometry(QtCore.QRect(540, 50, 131, 191)) self.HWSJ.setObjectName("HWSJ") self.H_Price1 = QtWidgets.QLabel(self.centralwidget) self.H_Price1.setGeometry(QtCore.QRect(80, 250, 81, 16)) self.H_Price1.setObjectName("H_Price1") self.H_Price2 = QtWidgets.QLabel(self.centralwidget) self.H_Price2.setGeometry(QtCore.QRect(310, 250, 81, 16)) self.H_Price2.setObjectName("H_Price2") self.H_Price3 = QtWidgets.QLabel(self.centralwidget) self.H_Price3.setGeometry(QtCore.QRect(540, 250, 81, 16)) self.H_Price3.setObjectName("H_Price3") self.HOrder1 = QtWidgets.QSpinBox(self.centralwidget) self.HOrder1.setGeometry(QtCore.QRect(90, 280, 42, 22)) self.HOrder1.setObjectName("啤酒雞翅") self.HOrder2 = QtWidgets.QSpinBox(self.centralwidget) self.HOrder2.setGeometry(QtCore.QRect(310, 280, 42, 22)) self.HOrder2.setObjectName("翅桶") self.HOrder3 = QtWidgets.QSpinBox(self.centralwidget) self.HOrder3.setGeometry(QtCore.QRect(550, 280, 42, 22)) self.HOrder3.setObjectName("萬聖節") self.HJoin = QtWidgets.QPushButton(self.centralwidget) self.HJoin.setGeometry(QtCore.QRect(540, 400, 75, 23)) self.HJoin.setObjectName("HJoin") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 719, 23)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) 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", "MainWindow")) self.ZXHD.setText(_translate("MainWindow", ">最新活動:")) self.HZJPJ.setText(_translate("MainWindow", "炸雞啤酒乾杯桶")) self.HJCTZ.setText(_translate("MainWindow", "雞翅桶裝")) self.HWSJ.setText(_translate("MainWindow", "萬聖節日警報桶裝")) self.H_Price1.setText(_translate("MainWindow", "115.0元/份")) self.H_Price2.setText(_translate("MainWindow", "80.0元/份")) self.H_Price3.setText(_translate("MainWindow", "100.0元/份")) self.HJoin.setText(_translate("MainWindow", "加入清單"))
- 套餐介面
from PyQt5 import QtCore, QtGui, QtWidgets class JT(object): def setupUi(self, MainWindow): MainWindow.setObjectName(“MainWindow”) MainWindow.resize(719, 532) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName(“centralwidget”) self.JTTC = QtWidgets.QLabel(self.centralwidget) self.JTTC.setGeometry(QtCore.QRect(10, 20, 71, 31)) self.JTTC.setObjectName(“JTTC”) self.SRTC = QtWidgets.QLabel(self.centralwidget) self.SRTC.setGeometry(QtCore.QRect(80, 50, 131, 191)) self.SRTC.setObjectName(“SRTC”) self.WRTC = QtWidgets.QLabel(self.centralwidget) self.WRTC.setGeometry(QtCore.QRect(300, 50, 131, 191)) self.WRTC.setObjectName(“WRTC”) self.T_Price1 = QtWidgets.QLabel(self.centralwidget) self.T_Price1.setGeometry(QtCore.QRect(80, 250, 81, 16)) self.T_Price1.setObjectName(“T_Price1”) self.T_Price2 = QtWidgets.QLabel(self.centralwidget) self.T_Price2.setGeometry(QtCore.QRect(310, 250, 81, 16)) self.T_Price2.setObjectName(“T_Price2”) self.TOrder1 = QtWidgets.QSpinBox(self.centralwidget) self.TOrder1.setGeometry(QtCore.QRect(90, 280, 42, 22)) self.TOrder1.setObjectName(“TOrder1”) self.TOrder2 = QtWidgets.QSpinBox(self.centralwidget) self.TOrder2.setGeometry(QtCore.QRect(310, 280, 42, 22)) self.TOrder2.setObjectName(“TOrder2”) self.Tjoin = QtWidgets.QPushButton(self.centralwidget) self.Tjoin.setGeometry(QtCore.QRect(540, 400, 75, 23)) self.Tjoin.setObjectName(“Tjoin”) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 719, 23)) self.menubar.setObjectName(“menubar”) MainWindow.setMenuBar(self.menubar) 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", "MainWindow"))
self.JTTC.setText(_translate("MainWindow", ">家庭套餐:"))
self.SRTC.setText(_translate("MainWindow", "三人套餐"))
self.WRTC.setText(_translate("MainWindow", "五人套餐"))
self.T_Price1.setText(_translate("MainWindow", "120.0元/份"))
self.T_Price2.setText(_translate("MainWindow", "200.0元/份"))
self.Tjoin.setText(_translate("MainWindow", "加入清單"))
- 主介面
-- coding: utf-8 --
Form implementation generated from reading ui file ‘kfc.ui’
Created by: PyQt5 UI code generator 5.11.2
WARNING! All changes made in this file will be lost!
from PyQt5.QtWidgets import * from PyQt5 import QtCore, QtGui, QtWidgets import sys class ZJM(object): def setupUi(self,MainWindow): MainWindow.setObjectName(“MainWindow”) MainWindow.resize(780, 585) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName(“centralwidget”) self.KIND = QtWidgets.QComboBox(self.centralwidget) self.KIND.setGeometry(QtCore.QRect(30, 380, 251, 22)) self.KIND.setObjectName(“kind”) self.KIND.addItem("") self.KIND.addItem("") self.KIND.addItem("") self.KIND.addItem("") self.KIND.addItem("") self.tableWidget = QtWidgets.QTableWidget(self.centralwidget) self.tableWidget.setGeometry(QtCore.QRect(340, 30, 431, 281)) self.tableWidget.setObjectName(“tableWidget”) self.tableWidget.setColumnCount(4) self.tableWidget.setRowCount(0) item = QtWidgets.QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(1, item) item = QtWidgets.QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(2, item) item = QtWidgets.QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(3, item) self.label = QtWidgets.QLabel(self.centralwidget) self.label.setGeometry(QtCore.QRect(590, 330, 51, 21)) self.label.setObjectName(“label”) self.lineEdit = QtWidgets.QLineEdit(self.centralwidget) self.lineEdit.setGeometry(QtCore.QRect(650, 330, 113, 20)) self.lineEdit.setObjectName(“lineEdit”) self.label_2 = QtWidgets.QLabel(self.centralwidget) self.label_2.setGeometry(QtCore.QRect(390, 330, 71, 20)) self.label_2.setObjectName(“label_2”) self.spinBox = QtWidgets.QSpinBox(self.centralwidget) self.spinBox.setGeometry(QtCore.QRect(480, 330, 42, 22)) self.spinBox.setObjectName(“spinBox”) self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget) self.pushButton_2.setGeometry(QtCore.QRect(460, 380, 51, 23)) self.pushButton_2.setObjectName(“pushButton_2”) self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget) self.pushButton_3.setGeometry(QtCore.QRect(390, 380, 51, 23)) self.pushButton_3.setObjectName(“pushButton_3”) self.kfcBack = QtWidgets.QLabel(self.centralwidget) self.kfcBack.setGeometry(QtCore.QRect(40, 40, 261, 271)) self.kfcBack.setObjectName(“kfcBack”) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 780, 23)) self.menubar.setObjectName(“menubar”) MainWindow.setMenuBar(self.menubar) 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", "MainWindow"))
self.KIND.setItemText(0, _translate("MainWindow", "選擇餐品"))
self.KIND.setItemText(1, _translate("MainWindow", "最新活動"))
self.KIND.setItemText(2, _translate("MainWindow", "漢堡/主食"))
self.KIND.setItemText(3, _translate("MainWindow", "咖啡/茶/飲料"))
self.KIND.setItemText(4, _translate("MainWindow", "家庭套餐"))
item = self.tableWidget.horizontalHeaderItem(0)
item.setText(_translate("MainWindow", "餐品名"))
item = self.tableWidget.horizontalHeaderItem(1)
item.setText(_translate("MainWindow", "數量"))
item = self.tableWidget.horizontalHeaderItem(2)
item.setText(_translate("MainWindow", "單價"))
item = self.tableWidget.horizontalHeaderItem(3)
item.setText(_translate("MainWindow", "金額"))
self.label.setText(_translate("MainWindow", " 合計:"))
self.label_2.setText(_translate("MainWindow", "10元優惠卷"))
self.pushButton_2.setText(_translate("MainWindow", "結算"))
self.pushButton_3.setText(_translate("MainWindow", "刪除"))
self.kfcBack.setText(_translate("MainWindow", "TextLabel"))
- 響應事件程式碼
from kfc import *
from Jiatintaocan import *
from Zhushi import *
from HUODON import *
from YinLiaoTianPing import *
from PyQt5.QtCore import Qt
import sys
class KFCDC(QMainWindow,ZJM):
def __init__(self):
self.flag1=0
self.flag2=0
self.flag3=0
self.flag=0
self.mealName='雞翅'
self.quanTity=10
self.unitPrice=10
self.moNey=10
super(KFCDC, self).__init__()
self.setupUi(self)
self.child1=ActivityPackage()
self.child2=Main_Food()
self.child3=DrInk()
self.child4=FaMily()
self.KIND.currentIndexChanged.connect(self.Show)
self.kfcBack.setPixmap(QtGui.QPixmap('./image/back.jpg'))
self.kfcBack.setScaledContents(True)
def Show(self):
# self.KIND.currentIndexChanged(SELECT.select)
if self.KIND.currentText() == '最新活動':
self.child1.show()
elif self.KIND.currentText() == '漢堡/主食':
self.child2.show()
elif self.KIND.currentText() == '咖啡/茶/飲料':
self.child3.show()
elif self.KIND.currentText() == '家庭套餐':
self.child4.show()
def QSS1(self,name,quantity,price,amount):
self.Meal_Name = QTableWidgetItem(name)
self.Meal_Name.setTextAlignment(Qt.AlignCenter)
self.Quan_Tity = QTableWidgetItem(str(quantity))
self.Quan_Tity.setTextAlignment(Qt.AlignCenter)
self.Unit_Price = QTableWidgetItem(str(price))
self.Unit_Price.setTextAlignment(Qt.AlignCenter)
self.Sum_Money = QTableWidgetItem(str(amount))
self.Sum_Money.setTextAlignment(Qt.AlignCenter)
# self.flag = self.flag + 1
self.Add(self.Meal_Name,self.Quan_Tity,self.Unit_Price,self.Sum_Money)
print(self.Quan_Tity.text())
#
def QSS2(self, name, quantity, price, amount):
self.Meal_Name = QTableWidgetItem(name)
self.Meal_Name.setTextAlignment(Qt.AlignCenter)
self.Quan_Tity = QTableWidgetItem(str(quantity))
self.Quan_Tity.setTextAlignment(Qt.AlignCenter)
self.Unit_Price = QTableWidgetItem(str(price))
self.Unit_Price.setTextAlignment(Qt.AlignCenter)
self.Sum_Money = QTableWidgetItem(str(amount))
self.Sum_Money.setTextAlignment(Qt.AlignCenter)
# self.flag = self.flag + 1
# self.Add(self.Meal_Name, self.Quan_Tity, self.Unit_Price, self.Sum_Money)
self.flag2 = self.flag2 + 1
def QSS3(self, name, quantity, price, amount):
Meal_Name = QTableWidgetItem(name)
Meal_Name.setTextAlignment(Qt.AlignCenter)
Quan_Tity = QTableWidgetItem(str(quantity))
Quan_Tity.setTextAlignment(Qt.AlignCenter)
Unit_Price = QTableWidgetItem(str(price))
Unit_Price.setTextAlignment(Qt.AlignCenter)
Sum_Money = QTableWidgetItem(str(amount))
Sum_Money.setTextAlignment(Qt.AlignCenter)
self.flag3 = self.flag3 + 1
def LiSt(self):
self.tableWidget.setItem(0, 0, self.Meal_Name)
self.tableWidget.setItem(0, 1, self.Quan_Tity)
self.tableWidget.setItem(0, 2, self.Unit_Price)
self.tableWidget.setItem(0, 3, self.Sum_Money)
def Add(self,Meal_Name, Quan_Tity, Unit_Price,Sum_Money):
self.Rowcont = self.tableWidget.rowCount()
if(self.flag1==0):
self.tableWidget.insertRow(self.Rowcont)
self.tableWidget.setItem(self.Rowcont, 0, Meal_Name)
self.tableWidget.setItem(self.Rowcont, 1, Quan_Tity)
self.tableWidget.setItem(self.Rowcont, 2, Unit_Price)
self.tableWidget.setItem(self.Rowcont, 3, Sum_Money)
self.flag1 = self.flag1 + 1
return self.flag1
elif(self.flag1==1):
# print(self.flag1)
# self.self.Rowcont = self.tableWidget.rowCount()
for i in range(self.Rowcont):
if(self.tableWidget.item(0,0).text()==Meal_Name):
self.Rowcont = self.tableWidget.rowCount()
self.tableWidget.setItem(self.Rowcont, 0, Meal_Name)
self.tableWidget.setItem(self.Rowcont, 1, Quan_Tity)
self.tableWidget.setItem(self.Rowcont, 2, Unit_Price)
self.tableWidget.setItem(self.Rowcont, 3, Sum_Money)
class ActivityPackage(QMainWindow,HD):
def __init__(self):
super(ActivityPackage, self).__init__()
self.setupUi(self)
self.HZJPJ.setPixmap(QtGui.QPixmap('./image/啤酒雞翅.jpg'))
self.HZJPJ.setScaledContents(True)
self.HWSJ.setPixmap(QtGui.QPixmap('./image/萬聖節限定.jpg'))
self.HWSJ.setScaledContents(True)
self.HJCTZ.setPixmap(QtGui.QPixmap('./image/限定活動.jpg'))
self.HJCTZ.setScaledContents(True)
self.Meal_Name1='啤酒雞翅'
self.Meal_Name2 = '翅桶'
self.Meal_Name3 = '萬聖節'
self.Chicken_Price=115.0
self.Wings_Price=80.0
self.Halloween=100.0
self.HOrder1.valueChanged.connect(self.Add1)
self.HOrder2.valueChanged.connect(self.Add2)
self.HOrder3.valueChanged.connect(self.Add3)
self.HJoin.clicked.connect(self.H_JOIN)
def Add1(self):
self.QuanTity1=self.HOrder1.value()
self.Amount1 = self.Chicken_Price * self.QuanTity1
# print(self.QuanTity1)
kfdc.QSS1(self.Meal_Name1, self.QuanTity1, self.Chicken_Price, self.Amount1)
# return self.QuanTity1,self.Amount1
def Add2(self):
self.QuanTity2 = self.HOrder2.value()
self.Amount2 = self.Wings_Price * self.QuanTity2
kfdc.QSS2(self.Meal_Name2, self.QuanTity2, self.Wings_Price, self.Amount2)
return self.QuanTity2, self.Amount2
def Add3(self):
self.QuanTity3= self.HOrder3.value()
self.Amount3 = self.Halloween * self.QuanTity3
kfdc.QSS3(self.Meal_Name3, self.QuanTity3, self.Halloween, self.Amount3)
return self.QuanTity3, self.Amount3
def Price(self):
return self.Amount1,self.Amount2,self.Amount3
def H_JOIN(self):
print(self.Meal_Name1)
print(self.QuanTity1)
print(self.Chicken_Price)
print(self.Amount1)
class Main_Food(QMainWindow,ZS):
def __init__(self):
super(Main_Food, self).__init__()
self.setupUi(self)
# self.SELEC.
def shod(self):
# self.aa=SELECT()
self.aa.show()
class DrInk(QMainWindow, YL):
def __init__(self):
super(DrInk, self).__init__()
self.setupUi(self)
# self.SELEC.
def shod(self):
# self.aa = SELECT()
self.aa.show()
class FaMily(QMainWindow, JT):
def __init__(self):
super(FaMily, self).__init__()
self.setupUi(self)
# self.SELEC.
def shod(self):
self.aa.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
MainWindow = QMainWindow()
kfdc=KFCDC()
kfdc.show()
sys.exit(app.exec_())
總結:相對之前的程式來說,本次KFC點餐系統,覆蓋面更廣,我也遇到了很多困難,程式還有很多功能未能實現,還需要不斷完善,下次完善了再重新發一次