1. 程式人生 > >Python KFC點餐系統

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點餐系統,覆蓋面更廣,我也遇到了很多困難,程式還有很多功能未能實現,還需要不斷完善,下次完善了再重新發一次