GUI for the EVM machine

GUI.py

Committer:
priyanshu_varshney
Date:
2018-11-22
Revision:
0:96d6bd6c646f

File content as of revision 0:96d6bd6c646f:

from tkinter import *
import tkinter.messagebox as box
import pandas as pd
import os
import serial
import array
import pyttsx3

global name
global gender
global age
global house
party = []
count = []


class Auth:
    def __init__(self,master):
        self.t = 2
        self.master = master
        window = self.master
        window.title('Countries Generation')

        self.frame = Frame(window)

        self.Label1 = Label(window,text = 'Username:')
        self.Label1.pack(padx=15,pady= 5)

        self.entry1 = Entry(window,bd =5)
        self.entry1.pack(padx=15, pady=5)
        self.Label2 = Label(window,text = 'Password: ')
        self.Label2.pack(padx = 15,pady=6)

        self.entry2 = Entry(window, bd=5,show="*")
        self.entry2.pack(padx = 15,pady=7)
        # widget = Entry(parent, show="*", width=15)

        self.btn = Button(self.frame, text = 'Check Login',command = self.dialog)
        
        self.btn.pack(side = RIGHT , padx =5)
        self.frame.pack(padx=100,pady = 19)
    def dialog(self):
        username=self.entry1.get()
        password = self.entry2.get()
        if(username == 'khoury' and password=='khoury'):
            box.showinfo('info','Correct')
            self.t=1

        else:
            box.showinfo('info','Wrong-'+str(self.t))
        if(self.t == 1):
            self.t=2
            root2 = Toplevel(self.master)
            myGui = Main(root2)
            # root2 = Toplevel(self.master)
            # myGui = Proceed(root2)
            # self.master.destroy()

class Main():
    def __init__(self,master):
        self.master =master
        window = self.master
        self.master.title('Main Window')
        self.frame = Frame(window)
        self.btn = Button(self.frame, text = 'Credentials Checking',command = self.open_cred)
        self.btn.pack(side = RIGHT , padx =5)
        self.btn2 = Button(self.frame, text = 'Results',command = self.results)
        self.btn2.pack(side = LEFT , padx =5)
        
        self.frame.pack(padx=100,pady = 19)
    def open_cred(self):
        root3 = Toplevel(self.master)
        myGui2 = Proceed(root3)
    def results(self):
        root3 = Toplevel(self.master)
        myGui2 = Results(root3)
    
            
class Proceed:
    def __init__(self,master):
        
        self.master = master
        window = self.master
        self.master.title('Credentials Check')
        self.frame = Frame(window)
        self.Label1 = Label(window,text = 'Votercard ID:')
        self.Label1.pack(padx=15,pady= 5)

        self.entry1 = Entry(window,bd =5)
        self.entry1.pack(padx=15, pady=5)

        self.btn = Button(self.frame, text = 'Check Credentials',command = self.checker)
        self.btn.pack(side = RIGHT , padx =5)
        self.frame.pack(padx=100,pady = 19)

    def checker(self):
        voteID = self.entry1.get()
        df_out = pd.read_excel('/home/conan/Desktop/EVM/data.xlsx')
        df_out.set_index("voter_id", inplace=True)
        df_out.loc[voteID]
        global name
        global gender
        global age
        global house
        name=df_out.loc[voteID,['name_e']].tolist()
        gender=df_out.loc[voteID,['gender']].tolist()
        age=df_out.loc[voteID,['age']].tolist()
        house=df_out.loc[voteID,['house_no']].tolist()
        
        root3 = Toplevel(self.master)

        myGui2 = Proceed2(root3)
# # ZME0069054
class Proceed2:
    def __init__(self,master):

        self.master = master
        window = self.master
        self.master.title('Voter Information From Database')
        self.frame = Frame(window)
        self.Label1 = Label(window,text = 'Voter Name:')
        self.Label1.pack(padx=15,pady= 5)
        self.Label2 = Label(window,text = name)
        self.Label2.pack(padx=30,pady= 5)
        self.Label3 = Label(window,text = 'Voter Age:')
        self.Label3.pack(padx=15,pady= 5)
        self.Label4 = Label(window,text = age)
        self.Label4.pack(padx=30,pady= 5)
        self.Label5 = Label(window,text = 'Voter Gender:')
        self.Label5.pack(padx=15,pady= 5)
        self.Label6 = Label(window,text = gender)
        self.Label6.pack(padx=30,pady= 5)
        self.Label7 = Label(window,text = 'Voter HouseAdd:')
        self.Label7.pack(padx=15,pady= 5)
        self.Label8 = Label(window,text = house)
        self.Label8.pack(padx=30,pady= 5)
        self.btn = Button(self.frame, text = 'Okay',command = self.send_red)
        self.btn.pack(side = RIGHT , padx =5)
        self.frame.pack(padx=100,pady = 19)

    def send_red(self):
        self.master.destroy()

class Results:
    def __init__(self,master):

        self.master= master
        window = self.master
        self.master.title('Results')
        self.frame = Frame(window)
        global party
        global count
        party = ['a','b','c','d','e','f','g']
        count = [1,2,3,4,5,6,7]
        self.btn = Button(self.frame, text = 'Statistics',command = self.stat)
        self.btn.pack(side = RIGHT , padx =5)
        self.btn2 = Button(self.frame, text = 'Winner',command = self.fetch_data)
        self.btn2.pack(side = RIGHT , padx =5)
        self.btn2 = Button(self.frame, text = 'Graph')
        self.btn2.pack(side = RIGHT , padx =5)
        self.frame.pack(padx=100,pady = 19)


    def fetch_data(self):
        root4 = Toplevel(self.master)
        myGui = Proceed4(root4)
        
    def stat(self):
        root4 = Toplevel(self.master)
        myGui = Proceed3(root4)

class Proceed4:
    def __init__(self,master):
        self.master = master
        window = self.master
        self.master.title('Winner')
        self.frame = Frame(window)
        idx = count.index(max(count))
        engine = pyttsx3.init();
        rate =10
        newVolume = 0.0001
        def say(text):
            engine.say(text)
            engine.setProperty('voice', 0)
            engine.setProperty('rate', rate)
            engine.setProperty('volume', newVolume)
            engine.runAndWait()

        say("CONGRATULATIONS! The winner party is " + party[idx])

        self.Label1 = Label(window,text = "Winner is : " + str(party[idx]))
        self.Label1.pack(padx=15,pady= 5)
        self.frame.pack(padx=100,pady = 19)



class Proceed3:
    def __init__(self,master):

        self.master = master
        window = self.master
        self.master.title('Statistics')
        self.frame = Frame(window)
        self.Label1 = Label(window,text = party[0]+" : "+str(count[0]))
        self.Label1.pack(padx=15,pady= 5)
        # self.Label2 = Label(window,text = count[0])
        # self.Label2.pack(padx=15,pady= 5)
        self.Label3 = Label(window,text = party[1]+" : "+str(count[1]))
        self.Label3.pack(padx=15,pady= 5)
        # self.Label4 = Label(window,text =count[1] )
        # self.Label4.pack(padx=30,pady= 5)
        self.Label5 = Label(window,text = party[2]+" : "+str(count[2]))
        self.Label5.pack(padx=15,pady= 5)
        # self.Label6 = Label(window,text = count[2])
        # self.Label6.pack(padx=30,pady= 5)
        self.Label7 = Label(window,text = party[3]+" : "+str(count[3]))
        self.Label7.pack(padx=15,pady= 5)
        # self.Label8 = Label(window,text = count[3])
        # self.Label8.pack(padx=30,pady= 5)

        self.Label7 = Label(window,text = party[4]+" : "+str(count[4]))
        self.Label7.pack(padx=15,pady= 5)
        # self.Label8 = Label(window,text = count[4])
        # self.Label8.pack(padx=30,pady= 5)

        self.Label7 = Label(window,text = party[5]+" : "+str(count[5]))
        self.Label7.pack(padx=15,pady= 5)
        # self.Label8 = Label(window,text = count[5])
        # self.Label8.pack(padx=30,pady= 5)

        self.Label7 = Label(window,text = party[6]+" : "+str(count[6]))
        self.Label7.pack(padx=15,pady= 5)
        # self.Label8 = Label(window,text = count[6])
        # self.Label8.pack(padx=30,pady= 5)

        self.btn = Button(self.frame, text = 'Okay',command = self.send_red)
        self.btn.pack(side = RIGHT , padx =5)
        self.frame.pack(padx=100,pady = 19)

    def send_red(self):
        self.master.destroy()
    

def main():
    root =Tk()
    auth = Auth(root)
    root.mainloop()

if __name__ == '__main__':
    main()