GUI for the EVM machine

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers GUI.py Source File

GUI.py

00001 from tkinter import *
00002 import tkinter.messagebox as box
00003 import pandas as pd
00004 import os
00005 import serial
00006 import array
00007 import pyttsx3
00008 
00009 global name
00010 global gender
00011 global age
00012 global house
00013 party = []
00014 count = []
00015 
00016 
00017 class Auth:
00018     def __init__(self,master):
00019         self.t = 2
00020         self.master = master
00021         window = self.master
00022         window.title('Countries Generation')
00023 
00024         self.frame = Frame(window)
00025 
00026         self.Label1 = Label(window,text = 'Username:')
00027         self.Label1.pack(padx=15,pady= 5)
00028 
00029         self.entry1 = Entry(window,bd =5)
00030         self.entry1.pack(padx=15, pady=5)
00031         self.Label2 = Label(window,text = 'Password: ')
00032         self.Label2.pack(padx = 15,pady=6)
00033 
00034         self.entry2 = Entry(window, bd=5,show="*")
00035         self.entry2.pack(padx = 15,pady=7)
00036         # widget = Entry(parent, show="*", width=15)
00037 
00038         self.btn = Button(self.frame, text = 'Check Login',command = self.dialog)
00039         
00040         self.btn.pack(side = RIGHT , padx =5)
00041         self.frame.pack(padx=100,pady = 19)
00042     def dialog(self):
00043         username=self.entry1.get()
00044         password = self.entry2.get()
00045         if(username == 'khoury' and password=='khoury'):
00046             box.showinfo('info','Correct')
00047             self.t=1
00048 
00049         else:
00050             box.showinfo('info','Wrong-'+str(self.t))
00051         if(self.t == 1):
00052             self.t=2
00053             root2 = Toplevel(self.master)
00054             myGui = Main(root2)
00055             # root2 = Toplevel(self.master)
00056             # myGui = Proceed(root2)
00057             # self.master.destroy()
00058 
00059 class Main():
00060     def __init__(self,master):
00061         self.master =master
00062         window = self.master
00063         self.master.title('Main Window')
00064         self.frame = Frame(window)
00065         self.btn = Button(self.frame, text = 'Credentials Checking',command = self.open_cred)
00066         self.btn.pack(side = RIGHT , padx =5)
00067         self.btn2 = Button(self.frame, text = 'Results',command = self.results)
00068         self.btn2.pack(side = LEFT , padx =5)
00069         
00070         self.frame.pack(padx=100,pady = 19)
00071     def open_cred(self):
00072         root3 = Toplevel(self.master)
00073         myGui2 = Proceed(root3)
00074     def results(self):
00075         root3 = Toplevel(self.master)
00076         myGui2 = Results(root3)
00077     
00078             
00079 class Proceed:
00080     def __init__(self,master):
00081         
00082         self.master = master
00083         window = self.master
00084         self.master.title('Credentials Check')
00085         self.frame = Frame(window)
00086         self.Label1 = Label(window,text = 'Votercard ID:')
00087         self.Label1.pack(padx=15,pady= 5)
00088 
00089         self.entry1 = Entry(window,bd =5)
00090         self.entry1.pack(padx=15, pady=5)
00091 
00092         self.btn = Button(self.frame, text = 'Check Credentials',command = self.checker)
00093         self.btn.pack(side = RIGHT , padx =5)
00094         self.frame.pack(padx=100,pady = 19)
00095 
00096     def checker(self):
00097         voteID = self.entry1.get()
00098         df_out = pd.read_excel('/home/conan/Desktop/EVM/data.xlsx')
00099         df_out.set_index("voter_id", inplace=True)
00100         df_out.loc[voteID]
00101         global name
00102         global gender
00103         global age
00104         global house
00105         name=df_out.loc[voteID,['name_e']].tolist()
00106         gender=df_out.loc[voteID,['gender']].tolist()
00107         age=df_out.loc[voteID,['age']].tolist()
00108         house=df_out.loc[voteID,['house_no']].tolist()
00109         
00110         root3 = Toplevel(self.master)
00111 
00112         myGui2 = Proceed2(root3)
00113 # # ZME0069054
00114 class Proceed2:
00115     def __init__(self,master):
00116 
00117         self.master = master
00118         window = self.master
00119         self.master.title('Voter Information From Database')
00120         self.frame = Frame(window)
00121         self.Label1 = Label(window,text = 'Voter Name:')
00122         self.Label1.pack(padx=15,pady= 5)
00123         self.Label2 = Label(window,text = name)
00124         self.Label2.pack(padx=30,pady= 5)
00125         self.Label3 = Label(window,text = 'Voter Age:')
00126         self.Label3.pack(padx=15,pady= 5)
00127         self.Label4 = Label(window,text = age)
00128         self.Label4.pack(padx=30,pady= 5)
00129         self.Label5 = Label(window,text = 'Voter Gender:')
00130         self.Label5.pack(padx=15,pady= 5)
00131         self.Label6 = Label(window,text = gender)
00132         self.Label6.pack(padx=30,pady= 5)
00133         self.Label7 = Label(window,text = 'Voter HouseAdd:')
00134         self.Label7.pack(padx=15,pady= 5)
00135         self.Label8 = Label(window,text = house)
00136         self.Label8.pack(padx=30,pady= 5)
00137         self.btn = Button(self.frame, text = 'Okay',command = self.send_red)
00138         self.btn.pack(side = RIGHT , padx =5)
00139         self.frame.pack(padx=100,pady = 19)
00140 
00141     def send_red(self):
00142         self.master.destroy()
00143 
00144 class Results:
00145     def __init__(self,master):
00146 
00147         self.master= master
00148         window = self.master
00149         self.master.title('Results')
00150         self.frame = Frame(window)
00151         global party
00152         global count
00153         party = ['a','b','c','d','e','f','g']
00154         count = [1,2,3,4,5,6,7]
00155         self.btn = Button(self.frame, text = 'Statistics',command = self.stat)
00156         self.btn.pack(side = RIGHT , padx =5)
00157         self.btn2 = Button(self.frame, text = 'Winner',command = self.fetch_data)
00158         self.btn2.pack(side = RIGHT , padx =5)
00159         self.btn2 = Button(self.frame, text = 'Graph')
00160         self.btn2.pack(side = RIGHT , padx =5)
00161         self.frame.pack(padx=100,pady = 19)
00162 
00163 
00164     def fetch_data(self):
00165         root4 = Toplevel(self.master)
00166         myGui = Proceed4(root4)
00167         
00168     def stat(self):
00169         root4 = Toplevel(self.master)
00170         myGui = Proceed3(root4)
00171 
00172 class Proceed4:
00173     def __init__(self,master):
00174         self.master = master
00175         window = self.master
00176         self.master.title('Winner')
00177         self.frame = Frame(window)
00178         idx = count.index(max(count))
00179         engine = pyttsx3.init();
00180         rate =10
00181         newVolume = 0.0001
00182         def say(text):
00183             engine.say(text)
00184             engine.setProperty('voice', 0)
00185             engine.setProperty('rate', rate)
00186             engine.setProperty('volume', newVolume)
00187             engine.runAndWait()
00188 
00189         say("CONGRATULATIONS! The winner party is " + party[idx])
00190 
00191         self.Label1 = Label(window,text = "Winner is : " + str(party[idx]))
00192         self.Label1.pack(padx=15,pady= 5)
00193         self.frame.pack(padx=100,pady = 19)
00194 
00195 
00196 
00197 class Proceed3:
00198     def __init__(self,master):
00199 
00200         self.master = master
00201         window = self.master
00202         self.master.title('Statistics')
00203         self.frame = Frame(window)
00204         self.Label1 = Label(window,text = party[0]+" : "+str(count[0]))
00205         self.Label1.pack(padx=15,pady= 5)
00206         # self.Label2 = Label(window,text = count[0])
00207         # self.Label2.pack(padx=15,pady= 5)
00208         self.Label3 = Label(window,text = party[1]+" : "+str(count[1]))
00209         self.Label3.pack(padx=15,pady= 5)
00210         # self.Label4 = Label(window,text =count[1] )
00211         # self.Label4.pack(padx=30,pady= 5)
00212         self.Label5 = Label(window,text = party[2]+" : "+str(count[2]))
00213         self.Label5.pack(padx=15,pady= 5)
00214         # self.Label6 = Label(window,text = count[2])
00215         # self.Label6.pack(padx=30,pady= 5)
00216         self.Label7 = Label(window,text = party[3]+" : "+str(count[3]))
00217         self.Label7.pack(padx=15,pady= 5)
00218         # self.Label8 = Label(window,text = count[3])
00219         # self.Label8.pack(padx=30,pady= 5)
00220 
00221         self.Label7 = Label(window,text = party[4]+" : "+str(count[4]))
00222         self.Label7.pack(padx=15,pady= 5)
00223         # self.Label8 = Label(window,text = count[4])
00224         # self.Label8.pack(padx=30,pady= 5)
00225 
00226         self.Label7 = Label(window,text = party[5]+" : "+str(count[5]))
00227         self.Label7.pack(padx=15,pady= 5)
00228         # self.Label8 = Label(window,text = count[5])
00229         # self.Label8.pack(padx=30,pady= 5)
00230 
00231         self.Label7 = Label(window,text = party[6]+" : "+str(count[6]))
00232         self.Label7.pack(padx=15,pady= 5)
00233         # self.Label8 = Label(window,text = count[6])
00234         # self.Label8.pack(padx=30,pady= 5)
00235 
00236         self.btn = Button(self.frame, text = 'Okay',command = self.send_red)
00237         self.btn.pack(side = RIGHT , padx =5)
00238         self.frame.pack(padx=100,pady = 19)
00239 
00240     def send_red(self):
00241         self.master.destroy()
00242     
00243 
00244 def main():
00245     root =Tk()
00246     auth = Auth(root)
00247     root.mainloop()
00248 
00249 if __name__ == '__main__':
00250     main()