Advertisement
Guest User

Untitled

a guest
Mar 17th, 2019
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.55 KB | None | 0 0
  1. from tkinter import *
  2. import tkinter as tk
  3. from tkinter import messagebox as ms
  4. import sqlite3
  5.  
  6.  
  7. # make database and users (if not exists already) table at programme start up
  8. with sqlite3.connect('quit.db') as db:
  9. c = db.cursor()
  10.  
  11. c.execute('CREATE TABLE IF NOT EXISTS user (var TEXT NOT NULL, username TEXT NOT NULL PRIMARY KEY ,password TEXT NOT NULL );')
  12. db.commit()
  13.  
  14.  
  15. class main:
  16. def __init__(self, master):
  17. # Window
  18. self.master = master
  19. # Some Usefull variables
  20. self.var = tk.StringVar()
  21. self.username = StringVar()
  22. self.password = StringVar()
  23. self.n_username = StringVar()
  24. self.n_password = StringVar()
  25. # Create Widgets
  26. self.widgets()
  27.  
  28.  
  29. def test(self):
  30. if self.var.get() == "HQ":
  31. from validationcreate import undergo
  32. undergo(self)
  33. else:
  34. ms.showerror('Oops!', 'something is not right.')
  35.  
  36. # Login Function
  37. def login(self):
  38. # Establish Connection
  39. with sqlite3.connect('quit.db') as db:
  40. c = db.cursor()
  41.  
  42. # Find user If there is any take proper action
  43. find_user = ('SELECT * FROM user WHERE var = ? and username = ? and password = ?')
  44. c.execute(find_user, [(self.var.get()), (self.username.get()), (self.password.get())])
  45. result = c.fetchall()
  46. if result:
  47. self.logf.pack_forget()
  48. self.test()
  49. else:
  50. ms.showerror('Oops!', 'something is not right.')
  51.  
  52.  
  53. def new_user(self):
  54. # Establish Connection
  55. with sqlite3.connect('quit.db') as db:
  56. c = db.cursor()
  57.  
  58. # Find Existing username if any take proper action
  59. find_user = ('SELECT * FROM user WHERE username = ?')
  60. c.execute(find_user, [(self.username.get())])
  61. if c.fetchall():
  62. ms.showerror('Error!', 'Username Taken Try a Diffrent One.')
  63. else:
  64. ms.showinfo('Success!', 'Account Created!')
  65. self.log()
  66. # Create New Account
  67. insert = 'INSERT INTO user(var,username,password) VALUES(?,?,?)'
  68. c.execute(insert, [(self.var.get()), (self.n_username.get()), (self.n_password.get())])
  69. db.commit()
  70.  
  71. def dropbox(self, parent):
  72. OPTIONS = [
  73. "Please Select",
  74. "HQ",
  75. "Pilot",
  76. "Crew",
  77. "Customer"
  78. ]
  79. self.var.set(OPTIONS[0])
  80. return OptionMenu(parent, self.var, *OPTIONS)
  81.  
  82.  
  83. # Frame Packing Methords
  84. def log(self):
  85.  
  86. self.username.set('')
  87. self.password.set('')
  88. self.crf.pack_forget()
  89. self.head['text'] = 'LOGIN'
  90. self.logf.pack()
  91.  
  92. def cr(self):
  93. self.n_username.set('')
  94. self.n_password.set('')
  95. self.logf.pack_forget()
  96. self.head['text'] = 'Create Account'
  97. self.crf.pack()
  98.  
  99. # Draw Widgets
  100. def widgets(self):
  101. self.head = Label(self.master, text='LOGIN', font=('', 35), pady=10)
  102. self.head.pack()
  103. self.logf = Frame(self.master, padx=10, pady=10)
  104. Label(self.logf, text='Select:', font=('', 20), pady=5, padx=5).grid(row=1, column=0)
  105. self.dropbox(self.logf).grid(row=1, column=1, sticky=W)
  106. Label(self.logf, text='Full Name: ', font=('', 20), pady=5, padx=5).grid(row=2, column=0)
  107. Entry(self.logf, textvariable=self.username, bd=5, font=('', 15)).grid(row=2, column=1)
  108. Label(self.logf, text='Password: ', font=('', 20), pady=5, padx=5).grid(sticky=W)
  109. Entry(self.logf, textvariable=self.password, bd=5, font=('', 15), show='*').grid(row=3, column=1)
  110. Button(self.logf, text='Login', bd=3, font=('', 15), padx=5, pady=5, command=self.login).grid()
  111. Button(self.logf, text='Create Account', bd=3, font=('', 15), padx=5, pady=5, command=self.cr).grid(row=4, column=1)
  112. self.logf.pack()
  113.  
  114. self.crf = Frame(self.master, padx=10, pady=10)
  115. Label(self.crf, text='Select:', font=('', 20), pady=5, padx=5).grid(row=1, column=0)
  116. self.dropbox(self.crf).grid(row=1, column=1, sticky=W)
  117. Label(self.crf, text='Full Name: ', font=('', 20), pady=5, padx=5).grid(sticky=W)
  118. Entry(self.crf, textvariable=self.n_username, bd=5, font=('', 15)).grid(row=2, column=1)
  119. Label(self.crf, text='Password: ', font=('', 20), pady=5, padx=5).grid(sticky=W)
  120. Entry(self.crf, textvariable=self.n_password, bd=5, font=('', 15), show='*').grid(row=3, column=1)
  121. Button(self.crf, text='Create Account', bd=3, font=('', 15), padx=5, pady=5, command=self.new_user).grid()
  122. Button(self.crf, text='Go to Login', bd=3, font=('', 15), padx=5, pady=5, command=self.log).grid(row=4, column=1)
  123.  
  124.  
  125. # create window and application object
  126. root = tk.Tk()
  127. # root.title("Login Form")
  128. main(root)
  129. root.mainloop()
  130.  
  131. from tkinter import *
  132. import tkinter as tk
  133. from tkinter import ttk
  134. from tkinter import messagebox as ms
  135. import sqlite3
  136.  
  137.  
  138. def connect():
  139. with sqlite3.connect('aircraft.db') as db:
  140. c = db.cursor()
  141.  
  142. c.execute('CREATE TABLE IF NOT EXISTS aircraft (aircraftreg TEXT NOT NULL, aircraftpilot TEXT NOT NULL, aircraftcrew TEXT NOT NULL, time INTERGER NOT NULL, PRIMARY KEY(aircraftpilot));')
  143. db.commit()
  144.  
  145.  
  146. class undergo:
  147. def __init__(self, master):
  148. self.master = master
  149. self.aircraftreg = StringVar()
  150. self.aircraftpilot = StringVar()
  151. self.aircraftcrew = StringVar()
  152. self.time = StringVar()
  153. self.widgets()
  154.  
  155. def creatingflight(self):
  156. with sqlite3.connect('aircraft.db') as db:
  157. c = db.cursor()
  158.  
  159. ms.showinfo('Success!', 'its saved!')
  160. self.mainpage()
  161. # Create New Account
  162. insert = 'INSERT INTO aircraft(aircraftreg, aircraftpilot, aircraftcrew, time) VALUES(?,?,?,?)'
  163. c.execute(insert, [(self.aircraftreg.get()), (self.aircraftpilot.get()), (self.aircraftcrew.get()), (self.time.get())])
  164. db.commit()
  165.  
  166. def View(self):
  167. conn = sqlite3.connect("aircraft.db")
  168. cur = conn.cursor()
  169. cur.execute("SELECT * FROM aircraft")
  170. rows = cur.fetchall()
  171. for row in rows:
  172. print(row) # it print all records in the database
  173. self.tree.insert("", tk.END, values=row)
  174. conn.close()
  175. connect() # this to create the db#
  176.  
  177. def Delete(self):
  178. conn = sqlite3.connect("aircraft.db")
  179. cur = conn.cursor()
  180. for selected_item in self.tree.selection():
  181. print(selected_item) # it prints the selected row id
  182. cur.execute("DELETE FROM aircraft WHERE aircraftpilot=?", (self.tree.set(selected_item, '#1'),))
  183. conn.commit()
  184. self.tree.delete(selected_item)
  185. conn.close()
  186.  
  187. def viewing(self):
  188. self.mainpage1.pack_forget()
  189. self.head['text'] = 'view flight'
  190. self.viewing1.pack()
  191.  
  192. def mainpage(self):
  193. self.mainpage1.pack()
  194. self.pagemain1.pack_forget()
  195. self.viewing1.pack_forget()
  196.  
  197. def pagemain(self):
  198. self.aircraftreg.set('')
  199. self.aircraftpilot.set('')
  200. self.aircraftcrew.set('')
  201. self.time.set('')
  202. self.mainpage1.pack_forget()
  203. # self.viewing1.pack_forget()
  204. self.head['text'] = 'Make Flight'
  205. self.pagemain1.pack()
  206.  
  207. def makingflight():
  208. pass
  209.  
  210. def widgets(self):
  211. self.head = Label(self.master, text='HQ', font=('',35), pady=10)
  212. self.head.pack()
  213. self.mainpage1 = Frame(self.master, padx=100, pady=10)
  214. Button(self.mainpage1, text='Create Flight', bd=3, font=('', 15), padx=5, pady=5, command=self.pagemain).grid(row=3, column=3)
  215. Button(self.mainpage1, text='View Flights', bd=3, font=('', 15), padx=5, pady=5, command=self.viewing).grid(row=3, column=4)
  216. self.mainpage1.pack()
  217.  
  218. self.pagemain1 = Frame(self.master, padx=10, pady=10)
  219. Label(self.pagemain1, text='Aircraft Reg', font=('', 20), pady=5, padx=5).grid(row=1, column=1)
  220. Entry(self.pagemain1, textvariable=self.aircraftreg, bd=5, font=('', 15)).grid(row=1, column=2)
  221.  
  222. Label(self.pagemain1, text='Aircraft Pilot', font=('', 20), pady=5, padx=5).grid(row=2, column=1)
  223. Entry(self.pagemain1, textvariable=self.aircraftpilot, bd=5, font=('', 15)).grid(row=2, column=2)
  224.  
  225. Label(self.pagemain1, text='Aircraft Crew Leader', font=('', 20), pady=5, padx=5).grid(row=3, column=1)
  226. Entry(self.pagemain1, textvariable=self.aircraftcrew, bd=5, font=('', 15)).grid(row=3, column=2)
  227.  
  228. Label(self.pagemain1, text='Take off time examp(0800)', font=('', 20), pady=5, padx=5).grid(row=4, column=1)
  229. Entry(self.pagemain1, textvariable=self.time, bd=5, font=('', 15)).grid(row=4, column=2)
  230.  
  231. Button(self.pagemain1, text='Create Flight', bd=3, font=('', 15), padx=5, pady=5, command=self.creatingflight).grid(row=5, column=1)
  232. Button(self.pagemain1, text='Home', bd=3, font=('', 15), padx=5, pady=5, command=self.mainpage).grid(row=5, column=2)
  233. self.pagemain1.pack_forget()
  234.  
  235.  
  236.  
  237. self.viewing1 = Frame(self.master, padx=10, pady=10)
  238. self.tree = ttk.Treeview(self.viewing1, column=("column1", "column2", "column3", "column4"), show='headings')
  239. self.tree.heading("#1", text="Aircraft Reg")
  240. self.tree.heading("#2", text="Pilots Name")
  241. self.tree.heading("#3", text="Lead Crew")
  242. self.tree.heading("#4", text="Take off Time")
  243. self.tree.pack()
  244. b3 = tk.Button(self.viewing1, text="DELETE", command=self.Delete)
  245. b3.pack(side=tk.BOTTOM)
  246. b2 = tk.Button(self.viewing1, text="view data", command=self.View)
  247. b2.pack()
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254. connect()
  255.  
  256.  
  257.  
  258.  
  259.  
  260. root = tk.Tk()
  261. undergo(root)
  262. root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement