Guest User

Untitled

a guest
Nov 19th, 2018
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 10.21 KB | None | 0 0
  1. #==========================#
  2. #   IMPORTS                #
  3. #==========================#
  4. import MySQLdb as mysql
  5. import tkinter as tk
  6. from tkinter import ttk
  7. from tkinter import Menu
  8. from tkinter import messagebox as msg
  9. from tkinter import scrolledtext
  10.  
  11. #Create Instance
  12. win = tk.Tk()
  13.  
  14. #Add a title
  15. win.title("Diwakar's Project")
  16.  
  17. #Establishing connection with the Database
  18. conn = mysql.connect(user='root', password='admin',
  19. host='127.0.0.1', db='Em_DB')
  20.  
  21. # create cursor
  22. cursor = conn.cursor()
  23. cursor1 = conn.cursor()
  24. cursor2 = conn.cursor()
  25. cursor3 = conn.cursor()
  26. cursor4 = conn.cursor()
  27. cursor5 = conn.cursor()
  28. cursor6 = conn.cursor()
  29. cursor7 = conn.cursor()
  30.  
  31. #EmployeeInfo TAB
  32. tabControl = ttk.Notebook(win)
  33.  
  34. tab1 = ttk.Frame(tabControl)
  35. tabControl.add(tab1, text="Employee Info")
  36. tabControl.pack(expand=1, fill="both")
  37. EmployeeInfo = ttk.LabelFrame(tab1, text='Employee Information')
  38. EmployeeInfo.grid(column=0,row=0,sticky='W')
  39.  
  40. #HEADING LABEL FOR EMPLOYEE INFO TAB
  41. a_Label = ttk.Label(EmployeeInfo, text="Welcome to the Employee Information Database")
  42. a_Label.config(font = ("Times New Roman", 22))
  43. a_Label.grid(column=0, row=1)
  44.  
  45. a1_Label = ttk.Label(EmployeeInfo, text="Please Enter The Correct Name")
  46. a1_Label.config(font = ("Times New Roman", 10))
  47. a1_Label.grid(column=0, row=3)
  48.  
  49. a2_Label = ttk.Label(EmployeeInfo, text = "EMPLOYEE INFO")
  50. a2_Label.config(fon = ("Times New Roman", 10))
  51. a2_Label.grid(column=0, row=4)
  52.  
  53. #HEADING LABEL FOR PROJECTINFO
  54.  
  55. #AddEmp TAB
  56. tab2 = ttk.Frame(tabControl)
  57. tabControl.add(tab2, text="Project Info")
  58. tabControl.pack(expand=2, fill = "both")
  59. ProjectInfo = ttk.LabelFrame(tab2, text='PROJECT Info')
  60. ProjectInfo.grid(column=0,row=0,sticky='W')
  61.  
  62.  
  63. b_Label = ttk.Label(ProjectInfo, text="Welcome to the Project Information Database")
  64. b_Label.config(font = ("Times New Roman", 22))
  65. b_Label.grid(column=0, row=29)
  66.  
  67. b1_Label = ttk.Label(ProjectInfo, text="Please Enter The Correct Employee Name")
  68. b1_Label.config(font = ("Times New Roman", 10),justify="left")
  69. b1_Label.grid(column=0, row=30)
  70.  
  71. #AddEmp TAB
  72. tab3 = ttk.Frame(tabControl)
  73. tabControl.add(tab3, text="Add Employee")
  74. tabControl.pack(expand=3, fill = "both")
  75. AddEmp = ttk.LabelFrame(tab3, text='Add New Employee')
  76. AddEmp.grid(column=0,row=0,sticky='W')
  77.  
  78. #HEADING LABEL FOR THE ADDEMPLOYEE TAB
  79. c_Label = ttk.Label(AddEmp, text="Add EMPLOYEE")
  80. c_Label.config(font = ("Times New Roman", 22))
  81. c_Label.grid(column=0, row=1)
  82.  
  83. c1_Label = ttk.Label(AddEmp, text="You will be adding and employee onto the Database, please enter the details carefully")
  84. c1_Label.config(font = ("Times New Roman", 10),justify="left")
  85. c1_Label.grid(column=0, row=9)
  86.  
  87. #label for name_retuned
  88. name_return_Label = ttk.Label(EmployeeInfo, text="Name")
  89. name_return_Label.config(font = ("Times New Roman", 10))
  90. name_return_Label.grid(column=1, row=5)
  91.  
  92. #label for position_returned
  93. position_return_Label = ttk.Label(EmployeeInfo, text="Position")
  94. position_return_Label.config(font = ("Times New Roman", 10))
  95. position_return_Label.grid(column=1, row=6)
  96.  
  97. #label for rank_retuned
  98. rank_return_Label = ttk.Label(EmployeeInfo, text="Rank")
  99. rank_return_Label.config(font = ("Times New Roman", 10))
  100. rank_return_Label.grid(column=1, row=10)
  101.  
  102. #label for contact_returned
  103. contact_return_Label = ttk.Label(EmployeeInfo, text="Phone Number")
  104. contact_return_Label.config(font = ("Times New Roman", 10))
  105. contact_return_Label.grid(column=1, row=14)
  106.  
  107. #label for Email_retuned
  108. email_return_Label = ttk.Label(EmployeeInfo, text="Email")
  109. email_return_Label.config(font = ("Times New Roman", 10))
  110. email_return_Label.grid(column=1, row=18)
  111.  
  112. #label for project_returned
  113. name_return_Label = ttk.Label(EmployeeInfo, text="Project Name")
  114. name_return_Label.config(font = ("Times New Roman", 10))
  115. name_return_Label.grid(column=1, row=22)
  116.  
  117. #label for supervisor_retuned
  118. supervisor_return_Label = ttk.Label(EmployeeInfo, text="Supervisor Name")
  119. supervisor_return_Label.config(font = ("Times New Roman", 10))
  120. supervisor_return_Label.grid(column=1, row=26)
  121.  
  122. #==========================#
  123. #Events                    #
  124. #==========================#
  125.  
  126. #Button Click Event Function
  127. def click_me():
  128.     action.config(text="I have been clicked")
  129.     #select name from Database taking input from user
  130.     cursor.execute("SELECT Em_Name FROM Em_Info where Em_Name = %s",([name_entered.get()],))
  131.     #select position from Database
  132.     cursor1.execute("SELECT Em_Pos FROM Em_Info where Em_Name = %s",([name_entered.get()],))
  133.     #select Rank from Database
  134.     cursor2.execute("SELECT Em_Rank FROM Em_Info where Em_Name = %s",([name_entered.get()],))
  135.     #Selct Contact number from Database
  136.     cursor3.execute("SELECT Em_Con_Mob FROM Em_Info where Em_Name = %s",([name_entered.get()],))
  137.     #select Email from Database
  138.     cursor4.execute("SELECT Em_Con_Email FROM Em_Info where Em_Name = %s",([name_entered.get()],))
  139.     #select Project Assigned from Database
  140.     cursor5.execute("SELECT Em_Project_Assigned FROM Em_Info where Em_Name = %s",([name_entered.get()],))
  141.     #select Employee Supervisor from Database
  142.     cursor6.execute("SELECT Em_Supervisor FROM Em_Info where Em_Name = %s",([name_entered.get()],))
  143.  
  144.     data = cursor.fetchone()
  145.     name_returned.insert(tk.INSERT, data)
  146.  
  147.  
  148.     data1 = cursor1.fetchone()
  149.     position_returned.insert(tk.INSERT, data1)
  150.  
  151.  
  152.     data2 = cursor2.fetchone()
  153.     rank_returned.insert(tk.INSERT, data2)
  154.  
  155.  
  156.     data3 = cursor3.fetchone()
  157.     contact_returned.insert(tk.INSERT, data3)
  158.  
  159.  
  160.     data4 = cursor4.fetchone()
  161.     email_returned.insert(tk.INSERT, data4)
  162.  
  163.  
  164.     data5 = cursor5.fetchone()
  165.     project_returned.insert(tk.INSERT, data5)
  166.  
  167.  
  168.     data6 = cursor6.fetchone()
  169.     supervisor_returned.insert(tk.INSERT, data6)
  170.  
  171. #New Button Event
  172. def click_me1():
  173.     action1.configure(text = 'working')
  174.     #select Project name from Database taking input from user
  175.     cursor7.execute("SELECT Proj_Lead FROM Em_Proj_info where Proj_Name = %s",([p_name_entered.get()],))
  176.  
  177.     data7 = cursor7.fetchone()
  178.     proj_name_returned.insert(tk.INSERT, data7)
  179.  
  180.  
  181.  
  182.  
  183. #Exit GUI Cleanly Event
  184. def _quit():
  185.     win.quit()
  186.     win.destroy()
  187.     exit()
  188.  
  189. #Display an About messagebox Event
  190. def _AboutmsgBox():
  191.     msg.showinfo('DBMS MINI PROJECT','A GUI python Program which uses MySQL \n Made by Diwakar Ghoshal')
  192.  
  193. # Display a WARNING messagebox Event
  194. def _WarningmsgBox():
  195.     msg.showwarning('WARNING','This is a warning message, you are trying something which might break this program \n please dont do that')
  196.  
  197. # Display an ERROR messagebox event
  198.  
  199. def _ErrmsgBox():
  200.     msg.showerror('Error','This is an error message, you made a mistake, oopsie')
  201. #============================#
  202. #Buttons                     #
  203. #============================#
  204.  
  205. #Adding a Button
  206. action = ttk.Button(EmployeeInfo, text="Click this for Emp", command=click_me)
  207. action.grid(column=2, row=3, columnspan =3)
  208.  
  209. #Adding a Button
  210. action1 = ttk.Button(ProjectInfo, text="Click this for Proj", command=click_me1)
  211. action1.grid(column=2, row=30)
  212.  
  213. #=========================#
  214. #Text Boxes               #
  215. #=========================#
  216.  
  217. ######################## TAB1 #######################################
  218. #Adding a text box for accepting employee name from user for search function
  219. name = tk.StringVar()
  220. name_entered = ttk.Entry(EmployeeInfo, width = 20, textvariable=name)
  221. name_entered.grid(column=1, row=3)
  222.  
  223. #Text Box for Name Return
  224. name_return = tk.StringVar()
  225. name_returned = ttk.Entry(EmployeeInfo, width = 20, textvariable=name_return)
  226. name_returned.grid(column=2, row=5)
  227.  
  228. #Text Box for Position Return
  229. pos_return = tk.StringVar()
  230. position_returned = ttk.Entry(EmployeeInfo, width = 20, textvariable=pos_return)
  231. position_returned.grid(column=2, row=6)
  232.  
  233. #Text Box for Name Return
  234. rank_return = tk.StringVar()
  235. rank_returned = ttk.Entry(EmployeeInfo, width = 20, textvariable=rank_return)
  236. rank_returned.grid(column=2, row=10)
  237.  
  238. #Text Box for contact Return
  239. contact_return = tk.StringVar()
  240. contact_returned = ttk.Entry(EmployeeInfo, width = 20, textvariable=contact_return)
  241. contact_returned.grid(column=2, row=14)
  242.  
  243. #Text Box for email Return
  244. email_return = tk.StringVar()
  245. email_returned = ttk.Entry(EmployeeInfo, width = 20, textvariable=email_return)
  246. email_returned.grid(column=2, row=18)
  247.  
  248. #Text Box for project Return
  249. proj_return = tk.StringVar()
  250. project_returned = ttk.Entry(EmployeeInfo, width = 20, textvariable=proj_return)
  251. project_returned.grid(column=2, row=22)
  252.  
  253. #Text Box for Supervisor Return
  254. sup_return = tk.StringVar()
  255. supervisor_returned = ttk.Entry(EmployeeInfo, width = 20, textvariable=sup_return)
  256. supervisor_returned.grid(column=2, row=26)
  257.  
  258. #####################################################################
  259.  
  260. ######################## TAB2 #######################################
  261. #Adding a text box for accepting employee name from user for search function to find the Projects They are working on and other Information
  262. p_name = tk.StringVar()
  263. p_name_entered = ttk.Entry(ProjectInfo, width = 20, textvariable=p_name)
  264. p_name_entered.grid(column=1, row=30)
  265.  
  266. #label for supervisor_retuned
  267. p_name_return_Label = ttk.Label(ProjectInfo, text="Project Name")
  268. p_name_return_Label.config(font = ("Times New Roman", 10))
  269. p_name_return_Label.grid(column=2, row=32)
  270.  
  271. #Text Box for Project Return
  272. proj_name_return = tk.StringVar()
  273. proj_name_returned = ttk.Entry(ProjectInfo, width = 20, textvariable=proj_name_return)
  274. proj_name_returned.grid(column=2, row=34)
  275. #####################################################################
  276.  
  277.  
  278. #=========================#
  279. #Menu Bar                 #
  280. #=========================#
  281.  
  282. #creating a menu Bar
  283. menu_bar = Menu(win)
  284. win.config(menu=menu_bar)
  285.  
  286. #Option Menu
  287. option_menu = Menu(menu_bar, tearoff=0)
  288. option_menu.add_command(label="Exit", command=_quit)
  289. menu_bar.add_cascade(label="Options", menu=option_menu)
  290.  
  291. #help menu
  292. help_menu = Menu(menu_bar, tearoff=0)
  293. menu_bar.add_cascade(label="Help", menu=help_menu)
  294. help_menu.add_command(label="About", command=_AboutmsgBox)
  295. help_menu.add_command(label="Warning", command=_WarningmsgBox)
  296. help_menu.add_command(label="Error",command=_ErrmsgBox)
  297.  
  298. #=============================#
  299. #Start the GUI                #
  300. #=============================#
  301. win.mainloop()
  302.  
  303. conn.close()
Add Comment
Please, Sign In to add comment