Apr-11-2020, 03:22 AM
Hi everyone,
I'm new in using python and tkinter and I'm stuck with my script, this one:
I'm new in using python and tkinter and I'm stuck with my script, this one:
from openpyxl import * from tkinter import * wb = load_workbook('C:\\Users\\Me\\Desktop\\Script\\try.xlsx') sheet = wb.active 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" def focus1(event): birth_field.focus_set() def focus2(event): gender_field.focus_set() def focus3(event): mobile_field.focus_set() def clear(): name_field.delete(0, END) birth_field.delete(0, END) gender_field.delete(0, END) mobile_field.delete(0, END) def insert(): if (fame_field.get() == "" and birth_field.get() == "" and gender_field.get() == "" and mobile_field.get() == ""): print("empty input") else: current_row = sheet.max_row current_column = sheet.max_column sheet.cell(row=current_row + 1, column=1).value = name_field.get() sheet.cell(row=current_row + 1, column=2).value = birth_field.get() sheet.cell(row=current_row + 1, column=3).value = gender_field.get() sheet.cell(row=current_row + 1, column=4).value = mobile_field.get() wb.save('C:\\Users\\Me\\Desktop\\Script\\try.xlsx') name_field.focus_set() clear() if __name__ == "__main__": root = Tk() root.configure(background='light grey') root.geometry("500x300") excel() #label name = Label(root, text="name", bg="light grey") birthdate = Label(root, text="birthdate", bg="light grey") gender = Label(root, text="gender", bg="light grey") mobile = Label(root, text="mobile contact", bg="light grey") #grid name.grid(row=1, column=0, sticky=W) birthdate.grid(row=2, column=0, sticky=W) gender.grid(row=3, column=0, sticky=W) mobile.grid(row=4, column=0, sticky=W) #entry name_entry = Entry(root) birthdate_entry = Entry(root) gender_entry = StringVar() mobile_entry = Entry(root) name_entry.bind("<Return>", focus1) birthdate_entry.bind("<Return>", focus2) gender_entry.bind("<Return>", focus4) mobile_entry.bind("<Return>", focus5) name_entry.grid(row=1, column=1, ipadx="100") birthdate_entry.grid(row=2, column=1, ipadx="100") gender_entry.grid(row=3, column=1, ipadx="100") mobile_entry.grid(row=4, column=1, ipadx="100") excel() submit = Button(root, text="Submit", fg="White", bg="Red", command=insert) submit.grid(row=12, column=1) root.mainloop()What I need is to create a code from the user input like this: first two letter of the name, plus year of birth, age (that I need to calculate from the birthdate), gender and last two digits of mobile phone all separete with a "_" (e,g. na_2000_20_m_99). I'd like it to appear in a text wedge that the user can see but not edit and then save it in my excel file. Is it possible? Also my first choice for the gender option was to use Radiobutton but for some reason it keep gives me error and so I kept the text form. If somebody could help with my problems I will be very grateful. Thank you all and have a nice day!