Apr-13-2020, 01:06 AM
Hi everyone,
I'm having a bit of trouble with my code using tkinter:
first: in the column "#" I'd like to add a number for the people who complete the form so (1, 2, 3, 4...) but I'd like be able to choose from what numbert to start (so 101, 102, 103, 104..)
second: gender and info input are not written in my excel file neither in the code.
third: my script run but return and focus right don't work and I'm afreid it might give me problems in future.
Thank you very much for all the help!
I'm having a bit of trouble with my code using tkinter:
from openpyxl import * from tkinter import * from datetime import datetime from dateutil.relativedelta import relativedelta wb = load_workbook('C:\\Users\\MyPC\\Desktop\\fs\\excel12.xlsx') sheet = wb.active datetimeFormat = '%d-%m-%Y' class Mainframe(Frame): def __init__(self,master,*args,**kwargs): global msg, inv_cnt excel() inv_cnt=1 Frame.__init__(self,master,*args,**kwargs) first_name = Label(self, text="First name:", font=('times', 12),anchor='w').place(relx=0.07, rely=0.043, height=15, width=100) gender = Label(self, text="Gender:", font=('times', 12),anchor='w').place(relx=0.07, rely=0.123, height=15, width=100) info = Label(self, text="Birth Place:", font=('times', 12),anchor='w').place(relx=0.07, rely=0.203, height=15, width=100) code = Label(self, text="Code:", font=('times', 12),anchor='w').place(relx=0.07, rely=0.443, height=15, width=100) self.first_name = StringVar(self) self.first_name.set('') self.first_name=Entry(self,textvariable = self.first_name, width=280, bg='WHITE') self.first_name.place(relx=0.18, rely=0.04, height=25, width=160) option_gender = StringVar() #option_gender.set('') self.gender_m =Radiobutton(self, text="Male", value="m", var=option_gender) self.gender_f =Radiobutton(self, text="Female", value="f", var=option_gender) self.gender_m.place(relx=0.15, rely=0.12, height=25, width=100) self.gender_f.place(relx=0.27, rely=0.12, height=25, width=100) self.select_gender = option_gender.get() option_info = StringVar() #self.info.set('') self.info_e =Radiobutton(self, text="e", value="e", var=option_info) self.info_q =Radiobutton(self, text="q", value="q", var=option_info) self.info_w =Radiobutton(self, text="w", value="w", var=option_info) self.info_e.place(relx=0.17, rely=0.20, height=25, width=50) self.info_q.place(relx=0.25, rely=0.20, height=25, width=50) self.info_w.place(relx=0.32, rely=0.20, height=25, width=50) self.select_info = option_info.get() self.Submit = Button(self, text='Submit', fg="White", bg="Red", command=self.insert) self.Submit.place(relx=0.18,rely=0.48,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.18, rely=0.44, height=25, width=160) # self.first_name.bind("<Return>", self.focus1) # self.select_gender.bind("<Return>", self.focus2) # self.select_info.bind("<Return>", self.focus3) # self.da_3.bind("<Return>", self.focus4) # def focus1(self, event): # self.select_gender.focus_set() # def focus2(self, event): # self.select_info.focus_set() def get_inv_count(self,value): global inv_cnt inv_cnt = value def clear(self): self.first_name.delete(0, END) self.select_gender.delete(0, END) self.select_info.delete(0, END) def insert(self): print(self.first_name.get(), self.select_gender, self.select_info) if (self.first_name.get() == "" and self.select_gender.get() == "" and self.select_info.get() == ""): print("empty input") else: current_row = sheet.max_row current_column = sheet.max_column #sheet.cell(row=current_row + 1, column=1).value = sheet.cell(row=current_row + 1, column=2).value = self.first_name.get() sheet.cell(row=current_row + 1, column=3).value = print(self.select_gender) sheet.cell(row=current_row + 1, column=4).value = self.select_info self.Output.set("{0}.{1}.{2}".format(self.first_name.get()[:2],self.select_gender, self.select_info)) wb.save('excel12.xlsx') self.first_name.focus_set() self.clear() def excel(): sheet.cell(row=1, column=1).value = "#" sheet.cell(row=1, column=2).value = "first_name" sheet.cell(row=1, column=3).value = "gender" sheet.cell(row=1, column=4).value = "info" sheet.cell(row=1, column=6).value = "code" class App(Tk): def __init__(self): global value Tk.__init__(self) self.title("fs") self.geometry('400x500') self.resizable(0,0) # create and pack a Mainframe window Mainframe(self).place(x=0,y=0,height=880,width=880) self.mainloop() App()I'm having three main issue right now:
first: in the column "#" I'd like to add a number for the people who complete the form so (1, 2, 3, 4...) but I'd like be able to choose from what numbert to start (so 101, 102, 103, 104..)
second: gender and info input are not written in my excel file neither in the code.
third: my script run but return and focus right don't work and I'm afreid it might give me problems in future.
Thank you very much for all the help!