Как сделать, чтобы выделение Combobox заполняло поля ввода на tkinter? - PullRequest
0 голосов
/ 10 января 2020

Я новичок в tkinter, но я не знаю, что делаю неправильно, я уже определил функцию для атрибутов, которые будут внутри ящиков ввода, но известные появляются после того, как я запустил код. то есть Как связать выпадающий список выбора, чтобы он мог автоматически заполнять соответствующие поля ввода из класса сконструированного транспортного средства?

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()

Ответы [ 2 ]

0 голосов
/ 10 января 2020

Я вижу две основные проблемы

  1. вы забыли некоторые StringVar переменные - ie. NoofDaysRenting и InvoiceID

  2. вы забыли использовать textvariable= для назначения StringVar на Entry - ie.

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

, поэтому он не обновляет Entry при обновлении StringVar


кода после других изменений.

Он имеет textvariable= только в двух 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()
0 голосов
/ 10 января 2020

Я сделал некоторые изменения:

  • использование self.myvar вместо self.var1, потому что это должен быть StringVar, а не IntVar
  • , установить переменную NoofDaysRenting с фиктивным значением "22222", в противном случае у меня была ошибка
  • передать аргумент event в вашу функцию Vehicle, чтобы правильно связать его с списком
  • У меня было 2 строки обновите значение txtWeeklyCost, я позволю вам сделать то же самое для всех остальных полей ввода

И я советую вам очистить код, выполняя несколько классов, а не весь код в init function:)

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()
...