Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from tkinter import *
- import tkinter as tk
- from tkinter import ttk, messagebox
- import pymysql
- class win1:
- def __init__(self, root):
- self.root = root
- self.root.title("141")
- self.root.geometry("1350x700+0+0")
- self.frame = tk.Frame(self.root)
- self.butnew("open personal", "2", Student)
- self.butnew("open Family", "3", Family)
- self.frame.pack()
- def butnew(self, text, number, _class):
- tk.Button(self.frame, text=text, command=lambda: self.new_window(number, _class)).pack()
- def new_window(self, number, _class):
- self.new = tk.Toplevel(self.root)
- _class(self.new, number)
- class Student:
- def __init__(self, root, number):
- self.root = root
- self.root.title("Human Data Management System")
- self.root.geometry("1350x700+0+0")
- title = Label(self.root, text="Personal Data", bd=10, relief=GROOVE, font=("times new roman", 40, "bold"),
- bg="Aqua", fg="black")
- title.pack(side=TOP, fill=X)
- #Abcbtn= Button(btn_Frame, text="open", width=10, command=self.open_win).grid(row=0, column=0, padx=10,
- # pady=10)
- #def open_win():
- # All Variables
- self.nationalid_var = StringVar()
- self.name_var = StringVar()
- self.email_var = StringVar()
- self.gender_var = StringVar()
- self.bloodgroup_var = StringVar()
- self.contact_var = StringVar()
- self.dob_var = StringVar()
- self.qualification_var = StringVar()
- self.search_by = StringVar()
- self.search_txt = StringVar()
- # Manage Frame
- Manage_Frame = Frame(self.root, bd=4, relief=RIDGE, bg="Aquamarine")
- Manage_Frame.place(x=20, y=100, width=450, height=580)
- m_title = Label(Manage_Frame, text="Manage Data", bg="Aquamarine", fg="black",
- font=("times new roman", 30, "bold"))
- m_title.grid(row=0, columnspan=2, pady=20)
- lbl_roll = Label(Manage_Frame, text="National ID", bg="Aquamarine", fg="black",
- font=("times new roman", 20, "bold"))
- lbl_roll.grid(row=1, column=0, pady=2, padx=20, sticky="w")
- txt_Roll = Entry(Manage_Frame, textvariable=self.nationalid_var, font=("times new roman", 15, "bold"), bd=5,
- relief=GROOVE)
- txt_Roll.grid(row=1, column=1, pady=2, padx=20, sticky="w")
- lbl_name = Label(Manage_Frame, text="Name", bg="Aquamarine", fg="black", font=("times new roman", 20, "bold"))
- lbl_name.grid(row=2, column=0, pady=2, padx=20, sticky="w")
- txt_name = Entry(Manage_Frame, textvariable=self.name_var, font=("times new roman", 15, "bold"), bd=5,
- relief=GROOVE)
- txt_name.grid(row=2, column=1, pady=2, padx=20, sticky="w")
- lbl_Email = Label(Manage_Frame, text="Email", bg="Aquamarine", fg="black", font=("times new roman", 20, "bold"))
- lbl_Email.grid(row=3, column=0, pady=2, padx=20, sticky="w")
- txt_Email = Entry(Manage_Frame, textvariable=self.email_var, font=("times new roman", 15, "bold"), bd=5,
- relief=GROOVE)
- txt_Email.grid(row=3, column=1, pady=2, padx=20, sticky="w")
- lbl_Gender = Label(Manage_Frame, text="Gender", bg="Aquamarine", fg="black",
- font=("times new roman", 20, "bold"))
- lbl_Gender.grid(row=4, column=0, pady=2, padx=20, sticky="w")
- combo_gender = ttk.Combobox(Manage_Frame, textvariable=self.gender_var, font=("times new roman", 13, "bold"),
- state='readonly')
- combo_gender['values'] = ("male", "female", "other")
- combo_gender.grid(row=4, column=1, padx=20, pady=2)
- lbl_Bloodgroup = Label(Manage_Frame, text="Blood Group", bg="Aquamarine", fg="black",
- font=("times new roman", 20, "bold"))
- lbl_Bloodgroup.grid(row=5, column=0, pady=2, padx=20, sticky="w")
- # txt_Bloodgroup = Entry(Manage_Frame, textvariable=self.bloodgroup_var, font=("times new roman", 15, "bold"), bd=5,relief=GROOVE)
- # txt_Bloodgroup.grid(row=5, column=1, pady=10, padx=20, sticky="w")
- combo_bloodgroup = ttk.Combobox(Manage_Frame, textvariable=self.bloodgroup_var,
- font=("times new roman", 13, "bold"), state='readonly')
- combo_bloodgroup['values'] = ("A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-")
- combo_bloodgroup.grid(row=5, column=1, padx=20, pady=2)
- lbl_Contact = Label(Manage_Frame, text="Contact", bg="Aquamarine", fg="black",
- font=("times new roman", 20, "bold"))
- lbl_Contact.grid(row=6, column=0, pady=2, padx=20, sticky="w")
- txt_Contact = Entry(Manage_Frame, textvariable=self.contact_var, font=("times new roman", 15, "bold"), bd=5,
- relief=GROOVE)
- txt_Contact.grid(row=6, column=1, pady=2, padx=20, sticky="w")
- lbl_DOB = Label(Manage_Frame, text="D.O.B", bg="Aquamarine", fg="black", font=("times new roman", 20, "bold"))
- lbl_DOB.grid(row=7, column=0, pady=2, padx=20, sticky="w")
- txt_DOB = Entry(Manage_Frame, textvariable=self.dob_var, font=("times new roman", 15, "bold"), bd=5,
- relief=GROOVE)
- txt_DOB.grid(row=7, column=1, pady=2, padx=20, sticky="w")
- lbl_Qualification = Label(Manage_Frame, text="Qualification", bg="Aquamarine", fg="black",
- font=("times new roman", 20, "bold"))
- lbl_Qualification.grid(row=8, column=0, pady=2, padx=20, sticky="w")
- txt_qualification = Entry(Manage_Frame, textvariable=self.qualification_var,
- font=("times new roman", 15, "bold"), bd=5, relief=GROOVE)
- txt_qualification.grid(row=8, column=1, pady=2, padx=20, sticky="w")
- lbl_Address = Label(Manage_Frame, text="Address", bg="Aquamarine", fg="black",
- font=("times new roman", 20, "bold"))
- lbl_Address.grid(row=9, column=0, pady=2, padx=20, sticky="w")
- self.txt_Address = Text(Manage_Frame, width=30, height=4, font=("", 10))
- self.txt_Address.grid(row=9, column=1, padx=20, pady=2, sticky="w")
- # Button
- btn_Frame = Frame(Manage_Frame, bd=4, relief=RIDGE, bg="Aquamarine")
- btn_Frame.place(x=15, y=500, width=420)
- Addbtn = Button(btn_Frame, text="Add", width=10, command=self.add_students).grid(row=0, column=0, padx=10,
- pady=10)
- updatebtn = Button(btn_Frame, text="Update", width=10, command=self.update_data).grid(row=0, column=1, padx=10,
- pady=10)
- deletebtn = Button(btn_Frame, text="Delete", width=10, command=self.delete_data).grid(row=0, column=2, padx=10,
- pady=10)
- clearbtn = Button(btn_Frame, text="Clear", width=10, command=self.clear).grid(row=0, column=3, padx=10, pady=10)
- # Detail Frame
- Detail_Frame = Frame(self.root, bd=4, relief=RIDGE, bg="Aquamarine")
- Detail_Frame.place(x=500, y=100, width=810, height=580)
- lbl_Search = Label(Detail_Frame, text="Search By", bg="Aquamarine", fg="black",
- font=("times new roman", 20, "bold"))
- lbl_Search.grid(row=0, column=0, pady=10, padx=20, sticky="w")
- combo_search = ttk.Combobox(Detail_Frame, textvariable=self.search_by, width=10,
- font=("times new roman", 13, "bold"), state='readonly')
- combo_search['values'] = ("nationalid", "Name", "Contact")
- combo_search.grid(row=0, column=1, padx=20, pady=10)
- txt_Search = Entry(Detail_Frame, textvariable=self.search_txt, width=20, font=("times new roman", 10, "bold"),
- bd=5, relief=GROOVE)
- txt_Search.grid(row=0, column=2, pady=10, padx=20, sticky="w")
- searchbtn = Button(Detail_Frame, command=self.search_data, text="Search", width=10, pady=5).grid(row=0,
- column=3,
- padx=10,
- pady=10)
- showallbtn = Button(Detail_Frame, command=self.fetch_data, text="Show All", width=10, pady=5).grid(row=0,
- column=4,
- padx=10,
- pady=10)
- # Table Frame
- Table_Frame = Frame(Detail_Frame, bd=4, relief=RIDGE, bg="Aquamarine")
- Table_Frame.place(x=20, y=59, width=760, height=500)
- scroll_x = Scrollbar(Table_Frame, orient=HORIZONTAL)
- scroll_y = Scrollbar(Table_Frame, orient=VERTICAL)
- self.Student_table = ttk.Treeview(Table_Frame, columns=(
- "nationalid", "name", "email", "gender", "bloodgroup", "contact", "dob", "qualification", "Address"),
- xscrollcommand=scroll_x.set, yscrollcommand=scroll_y.set)
- scroll_x.pack(side=BOTTOM, fil=X)
- scroll_y.pack(side=RIGHT, fil=Y)
- scroll_x.config(command=self.Student_table.xview)
- scroll_y.config(command=self.Student_table.yview)
- self.Student_table.heading("nationalid", text="National ID")
- self.Student_table.heading("name", text="Name")
- self.Student_table.heading("email", text="Email")
- self.Student_table.heading("gender", text="Gender")
- self.Student_table.heading("bloodgroup", text="Blood Group")
- self.Student_table.heading("contact", text="Contact")
- self.Student_table.heading("dob", text="D.O.B")
- self.Student_table.heading("qualification", text="Qualification")
- self.Student_table.heading("Address", text="Address")
- self.Student_table['show'] = 'headings'
- self.Student_table.column("nationalid", width=100)
- self.Student_table.column("name", width=100)
- self.Student_table.column("email", width=100)
- self.Student_table.column("gender", width=100)
- self.Student_table.column("bloodgroup", width=100)
- self.Student_table.column("contact", width=100)
- self.Student_table.column("dob", width=100)
- self.Student_table.column("qualification", width=100)
- self.Student_table.column("Address", width=150)
- self.Student_table.pack(fill=BOTH, expand=1)
- self.Student_table.bind("<ButtonRelease-1>", self.get_cursor)
- self.fetch_data()
- def add_students(self):
- if self.nationalid_var.get() == "" or self.name_var.get() == "" or self.email_var.get() == "" or self.gender_var.get() == "" or self.contact_var.get() == "" or self.dob_var.get() == "" or self.txt_Address.get(
- "0.0") == "":
- messagebox.showerror("Error", "All fields are required!!!")
- else:
- con = pymysql.connect(host="localhost", user="root", password="", database="human_data")
- cur = con.cursor()
- cur.execute("insert into personal values(%s,%s,%s,%s,%s,%s,%s,%s,%s)", (self.nationalid_var.get(),
- self.name_var.get(),
- self.email_var.get(),
- self.gender_var.get(),
- self.bloodgroup_var.get(),
- self.contact_var.get(),
- self.dob_var.get(),
- self.qualification_var.get(),
- self.txt_Address.get('1.0', END)
- ))
- con.commit()
- self.fetch_data()
- self.clear()
- # con.colse()
- messagebox.showinfo("Success", "Record has been inserted")
- def fetch_data(self):
- con = pymysql.connect(host="localhost", user="root", password="", database="human_data")
- cur = con.cursor()
- cur.execute("select *from personal")
- rows = cur.fetchall()
- if len(rows) != 0:
- self.Student_table.delete(*self.Student_table.get_children())
- for row in rows:
- self.Student_table.insert('', END, values=row)
- con.commit()
- # con.colse()
- def clear(self):
- self.nationalid_var.set("")
- self.name_var.set("")
- self.email_var.set("")
- self.gender_var.set("")
- self.bloodgroup_var.set("")
- self.contact_var.set("")
- self.dob_var.set("")
- self.qualification_var.set("")
- self.txt_Address.delete("1.0", END)
- def get_cursor(self, ev):
- cursor_row = self.Student_table.focus()
- contents = self.Student_table.item(cursor_row)
- row = contents["values"]
- self.nationalid_var.set(row[0])
- self.name_var.set(row[1])
- self.email_var.set(row[2])
- self.gender_var.set(row[3])
- self.bloodgroup_var.set(row[4])
- self.contact_var.set(row[5])
- self.dob_var.set(row[6])
- self.qualification_var.set(row[7])
- self.txt_Address.delete("1.0", END)
- self.txt_Address.insert(END, row[8])
- def update_data(self):
- con = pymysql.connect(host="localhost", user="root", password="", database="human_data")
- cur = con.cursor()
- cur.execute(
- "update personal set name=%s,email=%s,gender=%s,bloodgroup=%s,contact=%s,dob=%s,qualification=%s,Address=%s where nationalid=%s",
- (
- self.name_var.get(),
- self.email_var.get(),
- self.gender_var.get(),
- self.bloodgroup_var.get(),
- self.contact_var.get(),
- self.dob_var.get(),
- self.qualification_var.get(),
- self.txt_Address.get('1.0', END),
- self.nationalid_var.get()
- ))
- con.commit()
- self.fetch_data()
- self.clear()
- # con.colse()
- def delete_data(self):
- con = pymysql.connect(host="localhost", user="root", password="", database="human_data")
- cur = con.cursor()
- cur.execute("delete from personal where nationalid=%s", self.nationalid_var.get())
- con.commit()
- con.close()
- self.fetch_data()
- self.clear()
- def search_data(self):
- con = pymysql.connect(host="localhost", user="root", password="", database="human_data")
- cur = con.cursor()
- cur.execute(
- "select *from personal where " + str(self.search_by.get()) + " LIKE '%" + str(self.search_txt.get()) + "%'")
- rows = cur.fetchall()
- if len(rows) != 0:
- self.Student_table.delete(*self.Student_table.get_children())
- for row in rows:
- self.Student_table.insert('', END, values=row)
- con.commit()
- con.colse()
- self.frame=tk.Frame(self, root)
- self.frame.pack()
- class Family:
- def __init__(self, root, number):
- self.root = root
- self.root.title("Human Data Management System")
- self.root.geometry("1350x700+0+0")
- title = Label(self.root, text="Family Data", bd=10, relief=GROOVE, font=("times new roman", 40, "bold"),
- bg="Aqua", fg="black")
- title.pack(side=TOP, fill=X)
- #Abcbtn= Button(btn_Frame, text="open", width=10, command=self.open_win).grid(row=0, column=0, padx=10,
- # pady=10)
- #def open_win():
- # All Variables
- self.nationalid_var = StringVar()
- self.father_name_var = StringVar()
- self.mother_name_var = StringVar()
- self.father_occupation_var = StringVar()
- self.mother_occupation_var = StringVar()
- self.siblings_var = StringVar()
- #self.email_var = StringVar()
- #self.gender_var = StringVar()
- #self.bloodgroup_var = StringVar()
- # self.contact_var = StringVar()
- # self.dob_var = StringVar()
- # self.qualification_var = StringVar()
- self.search_by = StringVar()
- self.search_txt = StringVar()
- # Manage Frame
- Manage_Frame = Frame(self.root, bd=4, relief=RIDGE, bg="Aquamarine")
- Manage_Frame.place(x=20, y=100, width=450, height=580)
- m_title = Label(Manage_Frame, text="Manage Data", bg="Aquamarine", fg="black",
- font=("times new roman", 30, "bold"))
- m_title.grid(row=0, columnspan=2, pady=20)
- lbl_nationalid = Label(Manage_Frame, text="National ID", bg="Aquamarine", fg="black",
- font=("times new roman", 15, "bold"))
- lbl_nationalid.grid(row=1, column=0, pady=10, padx=20, sticky="w")
- txt_nationalid = Entry(Manage_Frame, textvariable=self.nationalid_var, font=("times new roman", 15, "bold"), bd=5,
- relief=GROOVE)
- txt_nationalid.grid(row=1, column=1, pady=10, padx=2, sticky="w")
- lbl_fathername = Label(Manage_Frame, text="Father's name", bg="Aquamarine", fg="black", font=("times new roman", 15, "bold"))
- lbl_fathername.grid(row=2, column=0, pady=10, padx=20, sticky="w")
- txt_fathername = Entry(Manage_Frame, textvariable=self.father_name_var, font=("times new roman", 15, "bold"), bd=5,
- relief=GROOVE)
- txt_fathername.grid(row=2, column=1, pady=10, padx=2, sticky="w")
- lbl_mothername = Label(Manage_Frame, text="Mother's name", bg="Aquamarine", fg="black",
- font=("times new roman", 15, "bold"))
- lbl_mothername.grid(row=3, column=0, pady=10, padx=20, sticky="w")
- txt_mothername = Entry(Manage_Frame, textvariable=self.mother_name_var, font=("times new roman", 15, "bold"), bd=5,
- relief=GROOVE)
- txt_mothername.grid(row=3, column=1, pady=10, padx=2, sticky="w")
- lbl_fatheroccu = Label(Manage_Frame, text="Father's Occupation", bg="Aquamarine", fg="black",
- font=("times new roman", 15, "bold"))
- lbl_fatheroccu.grid(row=4, column=0, pady=10, padx=20, sticky="w")
- txt_fatheroccu = Entry(Manage_Frame, textvariable=self.father_occupation_var, font=("times new roman", 15, "bold"), bd=5,
- relief=GROOVE)
- txt_fatheroccu.grid(row=4, column=1, pady=10, padx=2, sticky="w")
- lbl_motheroccu = Label(Manage_Frame, text="Mother's Occupation", bg="Aquamarine", fg="black",
- font=("times new roman", 15, "bold"))
- lbl_motheroccu.grid(row=5, column=0, pady=10, padx=20, sticky="w")
- txt_motheroccu = Entry(Manage_Frame, textvariable=self.mother_occupation_var, font=("times new roman", 15, "bold"), bd=5,
- relief=GROOVE)
- txt_motheroccu.grid(row=5, column=1, pady=10, padx=2, sticky="w")
- lbl_siblings = Label(Manage_Frame, text="Siblings", bg="Aquamarine", fg="black",
- font=("times new roman", 15, "bold"))
- lbl_siblings.grid(row=6, column=0, pady=10, padx=20, sticky="w")
- txt_siblings = Entry(Manage_Frame, textvariable=self.siblings_var, font=("times new roman", 15, "bold"), bd=5,
- relief=GROOVE)
- txt_siblings.grid(row=6, column=1, pady=10, padx=2, sticky="w")
- #lbl_Email = Label(Manage_Frame, text="Email", bg="Aquamarine", fg="black", font=("times new roman", 20, "bold"))
- # lbl_Email.grid(row=3, column=0, pady=2, padx=20, sticky="w")
- # txt_Email = Entry(Manage_Frame, textvariable=self.email_var, font=("times new roman", 15, "bold"), bd=5,
- # relief=GROOVE)
- #txt_Email.grid(row=3, column=1, pady=2, padx=20, sticky="w")
- # lbl_Gender = Label(Manage_Frame, text="Gender", bg="Aquamarine", fg="black",
- # font=("times new roman", 20, "bold"))
- #lbl_Gender.grid(row=4, column=0, pady=2, padx=20, sticky="w")
- #combo_gender = ttk.Combobox(Manage_Frame, textvariable=self.gender_var, font=("times new roman", 13, "bold"),
- # state='readonly')
- # combo_gender['values'] = ("male", "female", "other")
- #combo_gender.grid(row=4, column=1, padx=20, pady=2)
- #lbl_Bloodgroup = Label(Manage_Frame, text="Blood Group", bg="Aquamarine", fg="black",
- # font=("times new roman", 20, "bold"))
- #lbl_Bloodgroup.grid(row=5, column=0, pady=2, padx=20, sticky="w")
- # txt_Bloodgroup = Entry(Manage_Frame, textvariable=self.bloodgroup_var, font=("times new roman", 15, "bold"), bd=5,relief=GROOVE)
- # txt_Bloodgroup.grid(row=5, column=1, pady=10, padx=20, sticky="w")
- #combo_bloodgroup = ttk.Combobox(Manage_Frame, textvariable=self.bloodgroup_var,
- # font=("times new roman", 13, "bold"), state='readonly')
- #combo_bloodgroup['values'] = ("A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-")
- #combo_bloodgroup.grid(row=5, column=1, padx=20, pady=2)
- #lbl_Contact = Label(Manage_Frame, text="Contact", bg="Aquamarine", fg="black",
- # font=("times new roman", 20, "bold"))
- #lbl_Contact.grid(row=6, column=0, pady=2, padx=20, sticky="w")
- #txt_Contact = Entry(Manage_Frame, textvariable=self.contact_var, font=("times new roman", 15, "bold"), bd=5,
- # relief=GROOVE)
- #txt_Contact.grid(row=6, column=1, pady=2, padx=20, sticky="w")
- #lbl_DOB = Label(Manage_Frame, text="D.O.B", bg="Aquamarine", fg="black", font=("times new roman", 20, "bold"))
- #lbl_DOB.grid(row=7, column=0, pady=2, padx=20, sticky="w")
- #txt_DOB = Entry(Manage_Frame, textvariable=self.dob_var, font=("times new roman", 15, "bold"), bd=5,
- # relief=GROOVE)
- #txt_DOB.grid(row=7, column=1, pady=2, padx=20, sticky="w")
- #bl_Qualification = Label(Manage_Frame, text="Qualification", bg="Aquamarine", fg="black",
- # font=("times new roman", 20, "bold"))
- #lbl_Qualification.grid(row=8, column=0, pady=2, padx=20, sticky="w")
- #txt_qualification = Entry(Manage_Frame, textvariable=self.qualification_var,
- # font=("times new roman", 15, "bold"), bd=5, relief=GROOVE)
- #txt_qualification.grid(row=8, column=1, pady=2, padx=20, sticky="w")
- #lbl_Address = Label(Manage_Frame, text="Address", bg="Aquamarine", fg="black",
- # font=("times new roman", 20, "bold"))
- # lbl_Address.grid(row=9, column=0, pady=2, padx=20, sticky="w")
- # self.txt_Address = Text(Manage_Frame, width=30, height=4, font=("", 10))
- # self.txt_Address.grid(row=9, column=1, padx=20, pady=2, sticky="w")
- # Button
- btn_Frame = Frame(Manage_Frame, bd=4, relief=RIDGE, bg="Aquamarine")
- btn_Frame.place(x=15, y=500, width=420)
- Addbtn = Button(btn_Frame, text="Add", width=10, command=self.add_students).grid(row=0, column=0, padx=10,
- pady=10)
- updatebtn = Button(btn_Frame, text="Update", width=10, command=self.update_data).grid(row=0, column=1, padx=10,
- pady=10)
- deletebtn = Button(btn_Frame, text="Delete", width=10, command=self.delete_data).grid(row=0, column=2, padx=10,
- pady=10)
- clearbtn = Button(btn_Frame, text="Clear", width=10, command=self.clear).grid(row=0, column=3, padx=10, pady=10)
- # Detail Frame
- Detail_Frame = Frame(self.root, bd=4, relief=RIDGE, bg="Aquamarine")
- Detail_Frame.place(x=500, y=100, width=810, height=580)
- lbl_Search = Label(Detail_Frame, text="Search By", bg="Aquamarine", fg="black",
- font=("times new roman", 20, "bold"))
- lbl_Search.grid(row=0, column=0, pady=10, padx=20, sticky="w")
- combo_search = ttk.Combobox(Detail_Frame, textvariable=self.search_by, width=10,
- font=("times new roman", 13, "bold"), state='readonly')
- combo_search['values'] = ("nationalid")
- combo_search.grid(row=0, column=1, padx=20, pady=10)
- txt_Search = Entry(Detail_Frame, textvariable=self.search_txt, width=20, font=("times new roman", 10, "bold"),
- bd=5, relief=GROOVE)
- txt_Search.grid(row=0, column=2, pady=10, padx=20, sticky="w")
- searchbtn = Button(Detail_Frame, command=self.search_data, text="Search", width=10, pady=5).grid(row=0,
- column=3,
- padx=10,
- pady=10)
- showallbtn = Button(Detail_Frame, command=self.fetch_data, text="Show All", width=10, pady=5).grid(row=0,
- column=4,
- padx=10,
- pady=10)
- # Table Frame
- Table_Frame = Frame(Detail_Frame, bd=4, relief=RIDGE, bg="Aquamarine")
- Table_Frame.place(x=20, y=59, width=760, height=500)
- scroll_x = Scrollbar(Table_Frame, orient=HORIZONTAL)
- scroll_y = Scrollbar(Table_Frame, orient=VERTICAL)
- self.Family_table = ttk.Treeview(Table_Frame, columns=(
- "nationalid", "fathername", "mothername", "fatheroccupation", "motheroccupation", "siblings"),
- xscrollcommand=scroll_x.set, yscrollcommand=scroll_y.set)
- scroll_x.pack(side=BOTTOM, fil=X)
- scroll_y.pack(side=RIGHT, fil=Y)
- scroll_x.config(command=self.Family_table.xview)
- scroll_y.config(command=self.Family_table.yview)
- self.Family_table.heading("nationalid", text="National ID")
- self.Family_table.heading("fathername", text="Father's Name")
- self.Family_table.heading("mothername", text="Mother's name")
- self.Family_table.heading("fatheroccupation", text="Father's Occupation")
- self.Family_table.heading("motheroccupation", text="Mother's Occupation")
- self.Family_table.heading("siblings", text="Siblings")
- #self.Student_table.heading("dob", text="D.O.B")
- #self.Student_table.heading("qualification", text="Qualification")
- #self.Student_table.heading("Address", text="Address")
- self.Family_table['show'] = 'headings'
- self.Family_table.column("nationalid", width=100)
- self.Family_table.column("fathername", width=100)
- self.Family_table.column("mothername", width=100)
- self.Family_table.column("fatheroccupation", width=100)
- self.Family_table.column("motheroccupation", width=100)
- self.Family_table.column("siblings", width=100)
- #self.Student_table.column("email", width=100)
- # self.Student_table.column("gender", width=100)
- #self.Student_table.column("bloodgroup", width=100)
- #self.Student_table.column("contact", width=100)
- #self.Student_table.column("dob", width=100)
- #self.Student_table.column("qualification", width=100)
- #self.Student_table.column("Address", width=150)
- self.Family_table.pack(fill=BOTH, expand=1)
- self.Family_table.bind("<ButtonRelease-1>", self.get_cursor)
- self.fetch_data()
- def add_students(self):
- if self.nationalid_var.get() == "" or self.father_name_var.get() == "" or self.mother_name_var.get() == "" or self.father_occupation_var.get() == "" or self.mother_occupation_var.get() == "" or self.siblings_var.get() == "":
- messagebox.showerror("Error", "All fields are required!!!")
- else:
- con = pymysql.connect(host="localhost", user="root", password="", database="human_data")
- cur = con.cursor()
- cur.execute("insert into familydata values(%s,%s,%s,%s,%s,%s)", (self.nationalid_var.get(),
- self.father_name_var.get(),
- self.mother_name_var.get(),
- self.father_occupation_var.get(),
- self.mother_occupation_var.get(),
- self.siblings_var.get(),
- #self.contact_var.get(),
- #self.dob_var.get(),
- #self.qualification_var.get(),
- #self.txt_Address.get('1.0', END)
- ))
- con.commit()
- self.fetch_data()
- self.clear()
- # con.colse()
- messagebox.showinfo("Success", "Record has been inserted")
- def fetch_data(self):
- con = pymysql.connect(host="localhost", user="root", password="", database="human_data")
- cur = con.cursor()
- cur.execute("select *from familydata")
- rows = cur.fetchall()
- if len(rows) != 0:
- self.Family_table.delete(*self.Family_table.get_children())
- for row in rows:
- self.Family_table.insert('', END, values=row)
- con.commit()
- # con.colse()
- def clear(self):
- self.nationalid_var.set("")
- self.father_name_var.set("")
- self.mother_name_var.set("")
- self.father_occupation_var.set("")
- self.mother_occupation_var.set("")
- self.siblings_var.set("")
- #self.dob_var.set("")
- # self.qualification_var.set("")
- # self.txt_Address.delete("1.0", END)
- def get_cursor(self, ev):
- cursor_row = self.Family_table.focus()
- contents = self.Family_table.item(cursor_row)
- row = contents["values"]
- self.nationalid_var.set(row[0])
- self.father_name_var.set(row[1])
- self.mother_name_var.set(row[2])
- self.father_occupation_var.set(row[3])
- self.mother_occupation_var.set(row[4])
- self.siblings_var.set(row[5])
- #self.dob_var.set(row[6])
- #self.qualification_var.set(row[7])
- #self.txt_Address.delete("1.0", END)
- #self.txt_Address.insert(END, row[8])
- def update_data(self):
- con = pymysql.connect(host="localhost", user="root", password="", database="human_data")
- cur = con.cursor()
- cur.execute(
- "update familydata set fathername=%s,mothername=%s,fatheroccupation=%s,motheroccupation=%s,siblings=%s where nationalid=%s",
- (
- self.father_name_var.get(),
- self.mother_name_var.get(),
- self.father_occupation_var.get(),
- self.mother_occupation_var.get(),
- self.siblings_var.get(),
- #self.contact_var.get(),
- #self.dob_var.get(),
- #self.qualification_var.get(),
- #self.txt_Address.get('1.0', END),
- self.nationalid_var.get()
- ))
- con.commit()
- self.fetch_data()
- self.clear()
- # con.colse()
- def delete_data(self):
- con = pymysql.connect(host="localhost", user="root", password="", database="human_data")
- cur = con.cursor()
- cur.execute("delete from familydata where nationalid=%s", self.nationalid_var.get())
- con.commit()
- con.close()
- self.fetch_data()
- self.clear()
- def search_data(self):
- con = pymysql.connect(host="localhost", user="root", password="", database="human_data")
- cur = con.cursor()
- cur.execute(
- "select *from familydata where " + str(self.search_by.get()) + " LIKE '%" + str(self.search_txt.get()) + "%'")
- rows = cur.fetchall()
- if len(rows) != 0:
- self.Family_table.delete(*self.Family_table.get_children())
- for row in rows:
- self.Family_table.insert('', END, values=row)
- con.commit()
- con.colse()
- self.frame=tk.Frame(self, root)
- self.frame.pack()
- root =tk.Tk()
- ob = win1(root)
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement