diff --git a/Python-programming-3/frontend.py b/Python-programming-3/frontend.py index ab3d2e4bb..ac045dc89 100644 --- a/Python-programming-3/frontend.py +++ b/Python-programming-3/frontend.py @@ -1,102 +1,106 @@ from tkinter import * -import backend +import backend # Make sure this module is correctly defined def get_selected_row(event): global selected_tuple - index=list1.curselection()[0] - selected_tuple=list1.get(index) - e1.delete(0,END) - e1.insert(END,selected_tuple[1]) - e2.delete(0,END) - e2.insert(END,selected_tuple[2]) - e3.delete(0,END) - e3.insert(END,selected_tuple[3]) - e4.delete(0,END) - e4.insert(END,selected_tuple[4]) + try: + index = list1.curselection()[0] + selected_tuple = list1.get(index) + e1.delete(0, END) + e1.insert(END, selected_tuple[1]) + e2.delete(0, END) + e2.insert(END, selected_tuple[2]) + e3.delete(0, END) + e3.insert(END, selected_tuple[3]) + e4.delete(0, END) + e4.insert(END, selected_tuple[4]) + except IndexError: + pass # Handle case when no item is selected def view_command(): - list1.delete(0,END) + list1.delete(0, END) for row in backend.view(): - list1.insert(END,row) + list1.insert(END, row) def search_command(): - list1.delete(0,END) - for row in backend.search(title_text.get(),author_text.get(),year_text.get(),isbn_text.get()): - list1.insert(END,row) + list1.delete(0, END) + for row in backend.search(title_text.get(), author_text.get(), year_text.get(), isbn_text.get()): + list1.insert(END, row) def add_command(): - backend.insert(title_text.get(),author_text.get(),year_text.get(),isbn_text.get()) - list1.delete(0,END) - list1.insert(END,(title_text.get(),author_text.get(),year_text.get(),isbn_text.get())) + backend.insert(title_text.get(), author_text.get(), year_text.get(), isbn_text.get()) + list1.delete(0, END) + list1.insert(END, (title_text.get(), author_text.get(), year_text.get(), isbn_text.get())) + clear_entries() # Clear entry fields after adding def delete_command(): - backend.delete(selected_tuple[0]) + try: + backend.delete(selected_tuple[0]) + clear_entries() # Clear entry fields after deleting + except NameError: + pass # Handle case when no item is selected def update_command(): - backend.update(selected_tuple[0],title_text.get(),author_text.get(),year_text.get(),isbn_text.get()) - -window=Tk() - + try: + backend.update(selected_tuple[0], title_text.get(), author_text.get(), year_text.get(), isbn_text.get()) + except NameError: + pass # Handle case when no item is selected + +def clear_entries(): + """Clear all entry fields.""" + e1.delete(0, END) + e2.delete(0, END) + e3.delete(0, END) + e4.delete(0, END) + +window = Tk() window.wm_title("BookStore") -l1=Label(window,text="Title") -l1.grid(row=0,column=0) - -l2=Label(window,text="Author") -l2.grid(row=0,column=2) +# Labels +Label(window, text="Title").grid(row=0, column=0) +Label(window, text="Author").grid(row=0, column=2) +Label(window, text="Year").grid(row=1, column=0) +Label(window, text="ISBN").grid(row=1, column=2) -l3=Label(window,text="Year") -l3.grid(row=1,column=0) +# Entry fields +title_text = StringVar() +e1 = Entry(window, textvariable=title_text) +e1.grid(row=0, column=1) -l4=Label(window,text="ISBN") -l4.grid(row=1,column=2) +author_text = StringVar() +e2 = Entry(window, textvariable=author_text) +e2.grid(row=0, column=3) -title_text=StringVar() -e1=Entry(window,textvariable=title_text) -e1.grid(row=0,column=1) +year_text = StringVar() +e3 = Entry(window, textvariable=year_text) +e3.grid(row=1, column=1) -author_text=StringVar() -e2=Entry(window,textvariable=author_text) -e2.grid(row=0,column=3) +isbn_text = StringVar() +e4 = Entry(window, textvariable=isbn_text) +e4.grid(row=1, column=3) -year_text=StringVar() -e3=Entry(window,textvariable=year_text) -e3.grid(row=1,column=1) +# Listbox and scrollbar +list1 = Listbox(window, height=6, width=35) +list1.grid(row=2, column=0, rowspan=6, columnspan=2) -isbn_text=StringVar() -e4=Entry(window,textvariable=isbn_text) -e4.grid(row=1,column=3) - -list1=Listbox(window, height=6,width=35) -list1.grid(row=2,column=0,rowspan=6,columnspan=2) - -sb1=Scrollbar(window) -sb1.grid(row=2,column=2,rowspan=6) +sb1 = Scrollbar(window) +sb1.grid(row=2, column=2, rowspan=6) list1.configure(yscrollcommand=sb1.set) sb1.configure(command=list1.yview) -list1.bind('<>',get_selected_row) - -b1=Button(window,text="View all", width=12,command=view_command) -b1.grid(row=2,column=3) +list1.bind('<>', get_selected_row) -b2=Button(window,text="Search entry", width=12,command=search_command) -b2.grid(row=3,column=3) +# Buttons +Button(window, text="View all", width=12, command=view_command).grid(row=2, column=3) +Button(window, text="Search entry", width=12, command=search_command).grid(row=3, column=3) +Button(window, text="Add entry", width=12, command=add_command).grid(row=4, column=3) +Button(window, text="Update selected", width=12, command=update_command).grid(row=5, column=3) +Button(window, text="Delete selected", width=12, command=delete_command).grid(row=6, column=3) +Button(window, text="Close", width=12, command=window.destroy).grid(row=7, column=3) -b3=Button(window,text="Add entry", width=12,command=add_command) -b3.grid(row=4,column=3) - -b4=Button(window,text="Update selected", width=12,command=update_command) -b4.grid(row=5,column=3) - -b5=Button(window,text="Delete selected", width=12,command=delete_command) -b5.grid(row=6,column=3) - -b6=Button(window,text="Close", width=12,command=window.destroy) -b6.grid(row=7,column=3) - -f1=Label(window,text="Created By : Gaurav Kumar") -f1.grid(row=8,column=1,columnspan=4) +# Footer +Label(window, text="Created By : Gaurav Kumar").grid(row=8, column=1, columnspan=4) window.mainloop() +