如何使组合框选择填充tkinter上的入口框?

2024-04-29 00:10:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我对tkinter有点陌生,但我不知道我做错了什么,我已经为属性定义了函数,这些属性将位于EntryBox中,但在我运行代码后会出现。 这就是如何绑定select make组合框,以便它可以自动填充构造车辆类中的相关输入框

from tkinter import *
from tkinter import ttk
import random
import datetime
from tkinter import messagebox 


class Window:

    def __init__(self,root):
        self.root = root
        self.root.title("Car Rental Service")
        self.root.geometry("1350x700+0+0")
        self.var1 = 0
        self.var2 = 0
        self.var3 = 0
        self.var4 = 0
        self.var5 = 0
        self.var6 = 0
        self.var7 = 0
        self.var8 = 0

        def Vehicle(Window):
            values =str(self.cboSelectVehicleType.get())
            vtype = values
            if vtype =="Car":
                KmL.set("10")
                NumberOfDoors.set("4")
                NumberOfPassengers.set("5")
                NumberOfBeds.set("0")
                PlateNumber.set("152-C-854")
                DailyCost.set("20")
                WeeklyCost.set("95")

                n = float(DailyCost.get())
                s = float( NoofDaysRenting.get())
                price = (n*s)
                TC = str('%.2f'%(price))
                Total.set(TC)

            elif vtype =="Van":
                KmL.set("8")
                NumberOfDoors.set("3")
                NumberOfPassengers.set("3")
                NumberOfBeds.set("0")
                PlateNumber.set("142-G-511")
                DailyCost.set("45")
                WeeklyCost.set("260")

                n = float(DailyCost.get())
                s = float( NoofDaysRenting.get())
                price = (n*s)
                TC = str('%.2f'%(price))
                Total.set(TC)

            elif vtype =="Caravans":
                KmL.set("8")
                NumberOfDoors.set("0")
                NumberOfPassengers.set("0")
                NumberOfBeds.set("4")
                PlateNumber.set("131-G-111")
                DailyCost.set("50")
                WeeklyCost.set("350")

                n = float(DailyCost.get())
                s = float( NoofDaysRenting.get())
                price = (n*s)
                TC = str('%.2f'%(price))
                Total.set(TC)


          #===================================Frame==================================
        Mainframe = Frame(self.root, width =1350, height=700, bd=20, relief="raise")
        Mainframe.grid()

        LeftMainframe = Frame(Mainframe, width =1000, height=650, bd=8, relief="raise")
        LeftMainframe.pack(side=LEFT)
        RightMainframe = Frame(Mainframe, width =350, height=650, bd=8, relief="raise")
        RightMainframe.pack(side=RIGHT)

        #===================================Div_Frame==================================

        LeftMainframe1 = Frame(LeftMainframe, width =1000, height=225, bd=8, relief="raise")
        LeftMainframe1.pack(side=TOP)
        LeftMainframe2 = Frame(LeftMainframe, width =1000, height=225, bd=8, relief="raise")
        LeftMainframe2.pack(side=TOP)
        LeftMainframe3 = Frame(LeftMainframe, width =1000, height=100, bd=8, relief="raise")
        LeftMainframe3.pack(side=TOP)
        LeftMainframe4 = Frame(LeftMainframe, width =1000, height=100, bd=8, relief="raise")
        LeftMainframe4.pack(side=TOP)


        RightMainframe1 = Frame(RightMainframe, width =350, height=325, bd=8, relief="raise")
        RightMainframe1.pack(side=TOP)
        RightMainframe2 = Frame(RightMainframe, width =350, height=325, bd=8, relief="raise")
        RightMainframe2.pack(side=BOTTOM)

         #===================================Variable==================================
        self.var1 = IntVar()
        self.var2 = IntVar()
        self.var3 = IntVar()
        self.var4 = IntVar()
        self.var5 = IntVar()


        SelectVehicleType = StringVar()
        SelectMake = StringVar()
        Model = StringVar()
        KmL = StringVar()
        NumberOfDoors = StringVar()
        NumberOfPassengers = StringVar()
        NumberOfBeds = StringVar()
        PlateNumber = StringVar()
        DailyCost = StringVar()
        WeeklyCost = StringVar()
        WeekendCost = StringVar() 
        Total = StringVar()
        CustomerID = StringVar()



        def Reset():
            self.var1.set(0)
            self.var2.set(0)
            self.var3.set(0)
            self.var4.set(0)
            self.var5.set(0)
            self.var6.set(0)
            self.var7.set(0)
            self.var8.set(0)


            SelectVehicleType.set("")
            SelectMake.set("")
            Model.set("")
            KmL.set("")
            NumberOfDoors.set("")
            NumberOfPassengers.set("")
            NumberOfBeds.set("")
            PlateNumber.set("")
            DailyCost.set("")
            WeeklyCost.set("")
            WeekendCost.set("")
            Total.set("")
            CustomerID.set("")
            InvoiceID.set("")
            return Reset


        #------------------------------------LeftmainFrame2----------------------------------
        self.lblSelectVehicleType = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="Select VehicleType", bd=8)
        self.lblSelectVehicleType.grid(row=0, column=0)
        self.cboSelectVehicleType =ttk.Combobox(LeftMainframe2, textvariable=self.var1, state='readonly', font=('arial', 10, 'bold'),  width=25, justify='left')

        self.cboSelectVehicleType.bind("<<ComboboxSelected>>",Vehicle)
        self.cboSelectVehicleType['value']=('','Car','Van','Caravans')
        self.cboSelectVehicleType.current(0)
        self.cboSelectVehicleType.grid(row=0, column=1)

        self.lblSelectMake = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="Select Make", bd=8)
        self.lblSelectMake.grid(row=0, column=2)
        self.cboSelectMake =ttk.Combobox(LeftMainframe2, textvariable=self.var2, state='readonly', font=('arial', 10, 'bold'),  width=25, justify='left')
        self.cboSelectMake['value']=('','Audi A5','Ford fiesta','Toyota Corrolla','Ford focus','Renault Clio''Renault Other','Citroen Berlingo','Peugot Partner''Renault C','Citroen B','Peugot P',)
        self.cboSelectMake.current(0)
        self.cboSelectMake.grid(row=0, column=3)

        self.lblModel = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="Model", bd=8)
        self.lblModel.grid(row=0, column=4)
        self.txtModel = Entry(LeftMainframe2, font=('arial', 10, 'bold'), bd=15, width=25, justify='left')
        self.txtModel.grid(row=0, column=5)



        self.lblKmL = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="Km/L", bd=8)
        self.lblKmL.grid(row=1, column=0)
        self.txtKmL = Entry(LeftMainframe2, font=('arial', 10, 'bold'), bd=15, width=25, justify='left')
        self.txtKmL.grid(row=1, column=1)

        self.lblNumberOfBeds = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="Number Of Beds", bd=8)
        self.lblNumberOfBeds.grid(row=1, column=2)
        self.txtNumberOfBeds = Entry(LeftMainframe2, font=('arial', 10, 'bold'), bd=15, width=25, justify='left')
        self.txtNumberOfBeds.grid(row=1, column=3)

        self.lblPlateNumber = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="PlateNumber", bd=8)
        self.lblPlateNumber.grid(row=1, column=4)
        self.txtPlateNumber = Entry(LeftMainframe2, font=('arial', 10, 'bold'), bd=15, width=25, justify='left')
        self.txtPlateNumber.grid(row=1, column=5)

        self.lblNumberOfPassengers = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="Number Of Passengers", bd=8)
        self.lblNumberOfPassengers.grid(row=2, column=0)
        self.txtNumberOfPassengers = Entry(LeftMainframe2, font=('arial', 10, 'bold'), bd=15, width=25, justify='left')
        self.txtNumberOfPassengers.grid(row=2, column=1)

        self.lblDailyCost = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="Daily Cost", bd=8)
        self.lblDailyCost.grid(row=2, column=2)
        self.txtDailyCost = Entry(LeftMainframe2, font=('arial', 10, 'bold'), bd=15, width=25, justify='left')
        self.txtDailyCost.grid(row=2, column=3)

        self.lblWeeklyCost = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="Weekly Cost", bd=8)
        self.lblWeeklyCost.grid(row=2, column=4)
        self.txtWeeklyCost = Entry(LeftMainframe2, font=('arial', 10, 'bold'), bd=15, width=25, justify='left')
        self.txtWeeklyCost.grid(row=2, column=5)

        self.lblWeekendCost = Label(LeftMainframe2, font=('arial', 10, 'bold'), text=" Weekend Cost", bd=8)
        self.lblWeekendCost.grid(row=3, column=0)
        self.txtWeekendCost = Entry(LeftMainframe2, font=('arial', 10, 'bold'), bd=15, width=25, justify='left')
        self.txtWeekendCost.grid(row=3, column=1)



         #----------------------------------------Leftmainframe4------------------------------
        self.btnTotal=Button(LeftMainframe4, text='Total', padx=8, pady=8, bd=8, fg="blue", font=('arial', 13, 'bold'), width= 21, height=1,).grid(row=0, column=0)

        self.btnReceipt=Button(LeftMainframe4, text='Receipt', padx=8, pady=8, bd=8, fg="green", font=('arial', 13, 'bold'), width= 21, height=1,).grid(row=0, column=1)

        self.btnReset=Button(LeftMainframe4, text="Reset", command=Reset, padx=8, pady=8, bd=8, fg="blue", font=('arial', 13, 'bold'), width= 21, height=1,).grid(row=0, column=2)


if __name__ =='__main__':
    root= Tk()
    application = Window(root)
    root.mainloop()

Tags: textselfcolumnwidthframebdgridrow
2条回答

我做了一些改变:

  • 使用self.myvar而不是self.var1,因为它必须是StringVar,而不是IntVar
  • 将变量NoofDaysRenting设置为伪值“22222”,否则我会出错
  • 将参数event传递给函数Vehicle,以将其与组合框正确绑定
  • 我有两行代码来更新txtWeeklyCost的值,我允许您对所有其他输入框执行相同的操作

我建议您清理代码,执行多个类,而不是init函数中的所有代码:)

from tkinter import *
from tkinter import ttk
import random
import datetime
from tkinter import messagebox 

class Window:

    def __init__(self,root):
        self.root = root
        self.root.title("Car Rental Service")
        self.root.geometry("1350x700+0+0")
        self.var1 = 0
        self.var2 = 0
        self.var3 = 0
        self.var4 = 0
        self.var5 = 0
        self.var6 = 0
        self.var7 = 0
        self.var8 = 0
        self.myvar = StringVar()

        def Vehicle(event=None):
            print('self.myvar.get():', self.myvar.get())
            print('event.widget.get():', event.widget.get())

            values = self.myvar.get()
            values =str(self.cboSelectVehicleType.get())
            vtype = values
            NoofDaysRenting.set("22")
            if vtype =="Car":
                KmL.set("10")
                NumberOfDoors.set("4")
                NumberOfPassengers.set("5")
                NumberOfBeds.set("0")
                PlateNumber.set("152-C-854")
                DailyCost.set("20")
                WeeklyCost.set("95")

                n = float(DailyCost.get())
                s = float( NoofDaysRenting.get())
                price = (n*s)
                TC = str('%.2f'%(price))
                Total.set(TC)

            elif vtype =="Van":
                KmL.set("8")
                NumberOfDoors.set("3")
                NumberOfPassengers.set("3")
                NumberOfBeds.set("0")
                PlateNumber.set("142-G-511")
                DailyCost.set("45")
                WeeklyCost.set("260")

                n = float(DailyCost.get())
                s = float( NoofDaysRenting.get())
                price = (n*s)
                TC = str('%.2f'%(price))
                Total.set(TC)

            elif vtype =="Caravans":
                KmL.set("8")
                NumberOfDoors.set("0")
                NumberOfPassengers.set("0")
                NumberOfBeds.set("4")
                PlateNumber.set("131-G-111")
                DailyCost.set("50")
                WeeklyCost.set("350")

                n = float(DailyCost.get())
                s = float( NoofDaysRenting.get())
                price = (n*s)
                TC = str('%.2f'%(price))
                Total.set(TC)

            self.txtWeeklyCost.delete(0, END)
            self.txtWeeklyCost.insert(END, WeeklyCost.get())


        #===================================Frame==================================
        Mainframe = Frame(self.root, width =1350, height=700, bd=20, relief="raise")
        Mainframe.grid()

        LeftMainframe = Frame(Mainframe, width =1000, height=650, bd=8, relief="raise")
        LeftMainframe.pack(side=LEFT)
        RightMainframe = Frame(Mainframe, width =350, height=650, bd=8, relief="raise")
        RightMainframe.pack(side=RIGHT)

        #===================================Div_Frame==================================

        LeftMainframe1 = Frame(LeftMainframe, width =1000, height=225, bd=8, relief="raise")
        LeftMainframe1.pack(side=TOP)
        LeftMainframe2 = Frame(LeftMainframe, width =1000, height=225, bd=8, relief="raise")
        LeftMainframe2.pack(side=TOP)
        LeftMainframe3 = Frame(LeftMainframe, width =1000, height=100, bd=8, relief="raise")
        LeftMainframe3.pack(side=TOP)
        LeftMainframe4 = Frame(LeftMainframe, width =1000, height=100, bd=8, relief="raise")
        LeftMainframe4.pack(side=TOP)


        RightMainframe1 = Frame(RightMainframe, width =350, height=325, bd=8, relief="raise")
        RightMainframe1.pack(side=TOP)
        RightMainframe2 = Frame(RightMainframe, width =350, height=325, bd=8, relief="raise")
        RightMainframe2.pack(side=BOTTOM)

        #===================================Variable==================================
        self.var1 = IntVar()
        self.var2 = IntVar()
        self.var3 = IntVar()
        self.var4 = IntVar()
        self.var5 = IntVar()


        SelectVehicleType = StringVar()
        SelectMake = StringVar()
        Model = StringVar()
        KmL = StringVar()
        NumberOfDoors = StringVar()
        NumberOfPassengers = StringVar()
        NumberOfBeds = StringVar()
        PlateNumber = StringVar()
        DailyCost = StringVar()
        WeeklyCost = StringVar()
        WeekendCost = StringVar() 
        Total = StringVar()
        CustomerID = StringVar()
        NoofDaysRenting = StringVar()



        def Reset():
            self.var1.set(0)
            self.var2.set(0)
            self.var3.set(0)
            self.var4.set(0)
            self.var5.set(0)
            self.var6.set(0)
            self.var7.set(0)
            self.var8.set(0)


            SelectVehicleType.set("")
            SelectMake.set("")
            Model.set("")
            KmL.set("")
            NumberOfDoors.set("")
            NumberOfPassengers.set("")
            NumberOfBeds.set("")
            PlateNumber.set("")
            DailyCost.set("")
            WeeklyCost.set("")
            WeekendCost.set("")
            Total.set("")
            CustomerID.set("")
            InvoiceID.set("")
            return Reset


        #                  LeftmainFrame2                 
        self.lblSelectVehicleType = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="Select VehicleType", bd=8)
        self.lblSelectVehicleType.grid(row=0, column=0)
        # self.cboSelectVehicleType =ttk.Combobox(LeftMainframe2, textvariable=self.var1, state='readonly', font=('arial', 10, 'bold'),  width=25, justify='left')
        self.cboSelectVehicleType =ttk.Combobox(LeftMainframe2, textvariable=self.myvar, state='readonly', font=('arial', 10, 'bold'),  width=25, justify='left')

        self.cboSelectVehicleType.bind("<<ComboboxSelected>>", Vehicle)
        # self.cboSelectVehicleType.bind("<<ComboboxSelected>>", callback)
        self.cboSelectVehicleType['value']=('','Car','Van','Caravans')
        self.cboSelectVehicleType.current(0)
        self.cboSelectVehicleType.grid(row=0, column=1)

        self.lblSelectMake = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="Select Make", bd=8)
        self.lblSelectMake.grid(row=0, column=2)
        self.cboSelectMake =ttk.Combobox(LeftMainframe2, textvariable=self.var2, state='readonly', font=('arial', 10, 'bold'),  width=25, justify='left')
        self.cboSelectMake['value']=('','Audi A5','Ford fiesta','Toyota Corrolla','Ford focus','Renault Clio''Renault Other','Citroen Berlingo','Peugot Partner''Renault C','Citroen B','Peugot P',)
        self.cboSelectMake.current(0)
        self.cboSelectMake.grid(row=0, column=3)

        self.lblModel = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="Model", bd=8)
        self.lblModel.grid(row=0, column=4)
        self.txtModel = Entry(LeftMainframe2, font=('arial', 10, 'bold'), bd=15, width=25, justify='left')
        self.txtModel.grid(row=0, column=5)



        self.lblKmL = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="Km/L", bd=8)
        self.lblKmL.grid(row=1, column=0)
        self.txtKmL = Entry(LeftMainframe2, font=('arial', 10, 'bold'), bd=15, width=25, justify='left')
        self.txtKmL.grid(row=1, column=1)

        self.lblNumberOfBeds = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="Number Of Beds", bd=8)
        self.lblNumberOfBeds.grid(row=1, column=2)
        self.txtNumberOfBeds = Entry(LeftMainframe2, font=('arial', 10, 'bold'), bd=15, width=25, justify='left')
        self.txtNumberOfBeds.grid(row=1, column=3)

        self.lblPlateNumber = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="PlateNumber", bd=8)
        self.lblPlateNumber.grid(row=1, column=4)
        self.txtPlateNumber = Entry(LeftMainframe2, font=('arial', 10, 'bold'), bd=15, width=25, justify='left')
        self.txtPlateNumber.grid(row=1, column=5)

        self.lblNumberOfPassengers = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="Number Of Passengers", bd=8)
        self.lblNumberOfPassengers.grid(row=2, column=0)
        self.txtNumberOfPassengers = Entry(LeftMainframe2, font=('arial', 10, 'bold'), bd=15, width=25, justify='left')
        self.txtNumberOfPassengers.grid(row=2, column=1)

        self.lblDailyCost = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="Daily Cost", bd=8)
        self.lblDailyCost.grid(row=2, column=2)
        self.txtDailyCost = Entry(LeftMainframe2, font=('arial', 10, 'bold'), bd=15, width=25, justify='left')
        self.txtDailyCost.grid(row=2, column=3)

        self.lblWeeklyCost = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="Weekly Cost", bd=8)
        self.lblWeeklyCost.grid(row=2, column=4)
        self.txtWeeklyCost = Entry(LeftMainframe2, font=('arial', 10, 'bold'), bd=15, width=25, justify='left')
        self.txtWeeklyCost.grid(row=2, column=5)

        self.lblWeekendCost = Label(LeftMainframe2, font=('arial', 10, 'bold'), text=" Weekend Cost", bd=8)
        self.lblWeekendCost.grid(row=3, column=0)
        self.txtWeekendCost = Entry(LeftMainframe2, font=('arial', 10, 'bold'), bd=15, width=25, justify='left')
        self.txtWeekendCost.grid(row=3, column=1)



        #                    Leftmainframe4               
        self.btnTotal=Button(LeftMainframe4, text='Total', padx=8, pady=8, bd=8, fg="blue", font=('arial', 13, 'bold'), width= 21, height=1,).grid(row=0, column=0)

        self.btnReceipt=Button(LeftMainframe4, text='Receipt', padx=8, pady=8, bd=8, fg="green", font=('arial', 13, 'bold'), width= 21, height=1,).grid(row=0, column=1)

        self.btnReset=Button(LeftMainframe4, text="Reset", command=Reset, padx=8, pady=8, bd=8, fg="blue", font=('arial', 13, 'bold'), width= 21, height=1,).grid(row=0, column=2)


if __name__ =='__main__':
    root= Tk()
    application = Window(root)
    root.mainloop()

我看到两个主要问题

  1. 您忘记了一些StringVar变量-即NoofDaysRentingInvoiceID

  2. 您忘记使用textvariable=StringVar分配给Entry-ie

     self.txtKmL = Entry(..., textvariable=self.KmL, ...)
    

因此,当您更新StringVar时,它不会更新Entry


其他更改后的代码

它只有两个{},因为我有太多的工作要做

from tkinter import *
from tkinter import ttk
import random
import datetime
from tkinter import messagebox 


class Window:

    def __init__(self,root):
        self.root = root
        self.root.title("Car Rental Service")
        self.root.geometry("1350x700+0+0")

        #  - Variable  -

        self.var1 = IntVar()
        self.var2 = IntVar()
        self.var3 = IntVar()
        self.var4 = IntVar()
        self.var5 = IntVar()
        self.var6 = IntVar()
        self.var7 = IntVar()
        self.var8 = IntVar()

        self.SelectVehicleType = StringVar()
        self.SelectMake = StringVar()
        self.Model = StringVar()
        self.KmL = StringVar()
        self.NumberOfDoors = StringVar()
        self.NumberOfPassengers = StringVar()
        self.NumberOfBeds = StringVar()
        self.PlateNumber = StringVar()
        self.DailyCost = StringVar()
        self.WeeklyCost = StringVar()
        self.WeekendCost = StringVar() 
        self.Total = StringVar()
        self.CustomerID = StringVar()

        self.NoofDaysRenting = StringVar()
        self.InvoiceID = StringVar()

        #===================================Frame==================================

        Mainframe = Frame(self.root, width =1350, height=700, bd=20, relief="raise")
        Mainframe.grid()

        LeftMainframe = Frame(Mainframe, width =1000, height=650, bd=8, relief="raise")
        LeftMainframe.pack(side=LEFT)
        RightMainframe = Frame(Mainframe, width =350, height=650, bd=8, relief="raise")
        RightMainframe.pack(side=RIGHT)

        #===================================Div_Frame==================================

        LeftMainframe1 = Frame(LeftMainframe, width =1000, height=225, bd=8, relief="raise")
        LeftMainframe1.pack(side=TOP)
        LeftMainframe2 = Frame(LeftMainframe, width =1000, height=225, bd=8, relief="raise")
        LeftMainframe2.pack(side=TOP)
        LeftMainframe3 = Frame(LeftMainframe, width =1000, height=100, bd=8, relief="raise")
        LeftMainframe3.pack(side=TOP)
        LeftMainframe4 = Frame(LeftMainframe, width =1000, height=100, bd=8, relief="raise")
        LeftMainframe4.pack(side=TOP)

        RightMainframe1 = Frame(RightMainframe, width =350, height=325, bd=8, relief="raise")
        RightMainframe1.pack(side=TOP)
        RightMainframe2 = Frame(RightMainframe, width =350, height=325, bd=8, relief="raise")
        RightMainframe2.pack(side=BOTTOM)

        #                  LeftmainFrame2                 
        self.lblSelectVehicleType = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="Select VehicleType", bd=8)
        self.lblSelectVehicleType.grid(row=0, column=0)
        self.cboSelectVehicleType =ttk.Combobox(LeftMainframe2, textvariable=self.var1, state='readonly', font=('arial', 10, 'bold'),  width=25, justify='left')

        self.cboSelectVehicleType.bind("<<ComboboxSelected>>", self.Vehicle)
        self.cboSelectVehicleType['value']=('','Car','Van','Caravans')
        self.cboSelectVehicleType.current(0)
        self.cboSelectVehicleType.grid(row=0, column=1)

        self.lblSelectMake = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="Select Make", bd=8)
        self.lblSelectMake.grid(row=0, column=2)
        self.cboSelectMake =ttk.Combobox(LeftMainframe2, textvariable=self.var2, state='readonly', font=('arial', 10, 'bold'),  width=25, justify='left')
        self.cboSelectMake['value']=('','Audi A5','Ford fiesta','Toyota Corrolla','Ford focus','Renault Clio''Renault Other','Citroen Berlingo','Peugot Partner''Renault C','Citroen B','Peugot P',)
        self.cboSelectMake.current(0)
        self.cboSelectMake.grid(row=0, column=3)

        self.lblModel = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="Model", bd=8)
        self.lblModel.grid(row=0, column=4)
        self.txtModel = Entry(LeftMainframe2, font=('arial', 10, 'bold'), bd=15, width=25, justify='left')
        self.txtModel.grid(row=0, column=5)

        self.lblKmL = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="Km/L", bd=8)
        self.lblKmL.grid(row=1, column=0)
        self.txtKmL = Entry(LeftMainframe2, textvariable=self.KmL, font=('arial', 10, 'bold'), bd=15, width=25, justify='left')
        self.txtKmL.grid(row=1, column=1)

        self.lblNumberOfBeds = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="Number Of Beds", bd=8)
        self.lblNumberOfBeds.grid(row=1, column=2)
        self.txtNumberOfBeds = Entry(LeftMainframe2, textvariable=self.NumberOfBeds, font=('arial', 10, 'bold'), bd=15, width=25, justify='left')
        self.txtNumberOfBeds.grid(row=1, column=3)

        self.lblPlateNumber = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="PlateNumber", bd=8)
        self.lblPlateNumber.grid(row=1, column=4)
        self.txtPlateNumber = Entry(LeftMainframe2, font=('arial', 10, 'bold'), bd=15, width=25, justify='left')
        self.txtPlateNumber.grid(row=1, column=5)

        self.lblNumberOfPassengers = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="Number Of Passengers", bd=8)
        self.lblNumberOfPassengers.grid(row=2, column=0)
        self.txtNumberOfPassengers = Entry(LeftMainframe2, font=('arial', 10, 'bold'), bd=15, width=25, justify='left')
        self.txtNumberOfPassengers.grid(row=2, column=1)

        self.lblDailyCost = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="Daily Cost", bd=8)
        self.lblDailyCost.grid(row=2, column=2)
        self.txtDailyCost = Entry(LeftMainframe2, font=('arial', 10, 'bold'), bd=15, width=25, justify='left')
        self.txtDailyCost.grid(row=2, column=3)

        self.lblWeeklyCost = Label(LeftMainframe2, font=('arial', 10, 'bold'), text="Weekly Cost", bd=8)
        self.lblWeeklyCost.grid(row=2, column=4)
        self.txtWeeklyCost = Entry(LeftMainframe2, font=('arial', 10, 'bold'), bd=15, width=25, justify='left')
        self.txtWeeklyCost.grid(row=2, column=5)

        self.lblWeekendCost = Label(LeftMainframe2, font=('arial', 10, 'bold'), text=" Weekend Cost", bd=8)
        self.lblWeekendCost.grid(row=3, column=0)
        self.txtWeekendCost = Entry(LeftMainframe2, font=('arial', 10, 'bold'), bd=15, width=25, justify='left')
        self.txtWeekendCost.grid(row=3, column=1)

        #                    Leftmainframe4               

        self.btnTotal=Button(LeftMainframe4, text='Total', padx=8, pady=8, bd=8, fg="blue", font=('arial', 13, 'bold'), width= 21, height=1,).grid(row=0, column=0)
        self.btnReceipt=Button(LeftMainframe4, text='Receipt', padx=8, pady=8, bd=8, fg="green", font=('arial', 13, 'bold'), width= 21, height=1,).grid(row=0, column=1)
        self.btnReset=Button(LeftMainframe4, text="Reset", command=self.Reset, padx=8, pady=8, bd=8, fg="blue", font=('arial', 13, 'bold'), width= 21, height=1,).grid(row=0, column=2)

        self.Reset() # reset at start to set default values

    def Reset(self):
        self.var1.set(0)
        self.var2.set(0)
        self.var3.set(0)
        self.var4.set(0)
        self.var5.set(0)
        self.var6.set(0)
        self.var7.set(0)
        self.var8.set(0)

        self.SelectVehicleType.set("")
        self.SelectMake.set("")
        self.Model.set("")
        self.KmL.set("")
        self.NumberOfDoors.set("")
        self.NumberOfPassengers.set("")
        self.NumberOfBeds.set("")
        self.PlateNumber.set("")
        self.DailyCost.set("")
        self.WeeklyCost.set("")
        self.WeekendCost.set("")
        self.Total.set("")
        self.CustomerID.set("")
        self.InvoiceID.set("")
        self.NoofDaysRenting.set("0")
        # return Reset # makes no sense



    def Vehicle(self, event):
        #print(event)

        vtype = str(self.cboSelectVehicleType.get())

        if vtype =="Car":
            self.KmL.set("10")
            self.NumberOfDoors.set("4")
            self.NumberOfPassengers.set("5")
            self.NumberOfBeds.set("0")
            self.PlateNumber.set("152-C-854")
            self.DailyCost.set("20")
            self.WeeklyCost.set("95")

            n = float(self.DailyCost.get())
            s = float(self.NoofDaysRenting.get())
            price = (n*s)
            TC = str('%.2f'%(price))
            self.Total.set(TC)

        elif vtype =="Van":
            self.KmL.set("8")
            self.NumberOfDoors.set("3")
            self.NumberOfPassengers.set("3")
            self.NumberOfBeds.set("0")
            self.PlateNumber.set("142-G-511")
            self.DailyCost.set("45")
            self.WeeklyCost.set("260")

            n = float(self.DailyCost.get())
            s = float(self.NoofDaysRenting.get())
            price = (n*s)
            TC = str('%.2f'%(price))
            self.Total.set(TC)

        elif vtype =="Caravans":
            self.KmL.set("8")
            self.NumberOfDoors.set("0")
            self.NumberOfPassengers.set("0")
            self.NumberOfBeds.set("4")
            self.PlateNumber.set("131-G-111")
            self.DailyCost.set("50")
            self.WeeklyCost.set("350")

            n = float(self.DailyCost.get())
            s = float(self.NoofDaysRenting.get())
            price = (n*s)
            TC = str('%.2f'%(price))
            self.Total.set(TC)

if __name__ =='__main__':
    root= Tk()
    application = Window(root)
    root.mainloop()

相关问题 更多 >