Tkinter: create an identification code from user input Tkinter: create an identification code from user input tkinter tkinter

Tkinter: create an identification code from user input


You Program had errors wile executing.Try the following Code.Birth date should be in the format of YYYY-MM-DD.

from openpyxl import *from tkinter import *from datetime import datetimefrom dateutil.relativedelta import relativedeltawb = load_workbook('C:\\Users\\Me\\Desktop\\Script\\try.xlsx') sheet = wb.activedatetimeFormat = '%Y-%m-%d'class Mainframe(Frame):    # Mainframe contains the widgets##    global inv_cnt    def __init__(self,master,*args,**kwargs):        global msg, inv_cnt        excel()        inv_cnt=1        # *args packs positional arguments into tuple args        # **kwargs packs keyword arguments into dict kwargs        # initialise base class        Frame.__init__(self,master,*args,**kwargs)        # in this case the * an ** operators unpack the parameters        name = Label(self, text="Name:", font=('times', 15),anchor='e').place(relx=0.05, rely=0.05, height=15, width=100)        birthdate = Label(self, text="Birth Date:", font=('times', 15),anchor='e').place(relx=0.05, rely=0.15, height=15, width=100)        gender = Label(self, text="Gender:", font=('times', 15),anchor='e').place(relx=0.05, rely=0.25, height=15, width=100)        mobile = Label(self, text="Mobile:", font=('times', 15),anchor='e').place(relx=0.05, rely=0.35, height=15, width=100)        self.name = StringVar(self)        self.name.set('')        self.name=Entry(self,textvariable = self.name, width=280, bg='WHITE')        self.name.place(relx=0.2, rely=0.05, height=25, width=100)        self.birthdate = StringVar(self)        self.birthdate.set('')        self.birthdate=Entry(self,textvariable = self.birthdate, width=280, bg='WHITE')        self.birthdate.place(relx=0.2, rely=0.15, height=25, width=100)        self.gender = StringVar(self)        self.gender.set('')        self.gender=Entry(self,textvariable = self.gender, width=280, bg='WHITE')        self.gender.place(relx=0.2, rely=0.25, height=25, width=100)        self.mobile = StringVar(self)        self.mobile.set('')        self.mobile=Entry(self,textvariable = self.mobile, width=280, bg='WHITE')        self.mobile.place(relx=0.2, rely=0.35, height=25, width=100)        # Proceed button        self.Submit = Button(self, text='Submit', fg="White",                             bg="Red", command=self.insert)        self.Submit.place(relx=0.05,rely=0.50,height=25,width=100)        self.Output = StringVar(self)        self.Output.set('')        self.Output1 = Label(self, textvariable=self.Output, font=('times', 10),anchor='e', bg='WHITE').place(relx=0.05, rely=0.70, height=15, width=200)        self.name.bind("<Return>", self.focus1)         self.birthdate.bind("<Return>", self.focus2)         self.gender.bind("<Return>", self.focus3)     def focus1(self, event):         self.birthdate.focus_set()     def focus2(self, event):         self.gender.focus_set()     def focus3(self, event):         self.mobile.focus_set()     def get_inv_count(self,value):        global inv_cnt        inv_cnt = value     def clear(self):            self.name.delete(0, END)         self.birthdate.delete(0, END)         self.gender.delete(0, END)        self.mobile.delete(0, END)    def insert(self):        print(self.name.get(), self.birthdate.get(), self.gender.get(), self.mobile.get())        if (self.name.get() == "" and            self.birthdate.get() == "" and            self.gender.get() == "" and            self.mobile.get() == ""):            print("empty input")         else:             current_row = sheet.max_row             current_column = sheet.max_column             sheet.cell(row=current_row + 1, column=1).value = self.name.get()             sheet.cell(row=current_row + 1, column=2).value = self.birthdate.get()             sheet.cell(row=current_row + 1, column=3).value = self.gender.get()             sheet.cell(row=current_row + 1, column=4).value = self.mobile.get()            difference_in_years = relativedelta(datetime.strptime(datetime.now().strftime(datetimeFormat), datetimeFormat),                                                datetime.strptime(self.birthdate.get(), datetimeFormat)).years            self.Output.set("{0}_{1}_{2}_{3}".format(self.name.get()[:2], self.birthdate.get()[:4], difference_in_years, self.mobile.get()[-2:]))            wb.save('try.xlsx')             self.name.focus_set()             self.clear() def excel():     sheet.cell(row=1, column=1).value = "name"    sheet.cell(row=1, column=2).value = "birth"    sheet.cell(row=1, column=3).value = "gender"    sheet.cell(row=1, column=4).value = "mobile"class App(Tk):    def __init__(self):        global value        Tk.__init__(self)        self.title("MY GUI")        self.geometry('800x250')        self.resizable(0,0)                # create and pack a Mainframe window        Mainframe(self).place(x=0,y=0,height=250,width=800)        self.mainloop()       App()