· 6 years ago · Mar 17, 2019, 09:48 PM
1from tkinter import *
2import tkinter as tk
3from tkinter import messagebox as ms
4import sqlite3
5
6
7# make database and users (if not exists already) table at programme start up
8with 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
15class 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
126root = tk.Tk()
127# root.title("Login Form")
128main(root)
129root.mainloop()
130
131from tkinter import *
132import tkinter as tk
133from tkinter import ttk
134from tkinter import messagebox as ms
135import sqlite3
136
137
138def 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
146class 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
254connect()
255
256
257
258
259
260root = tk.Tk()
261undergo(root)
262root.mainloop()