Today let us build a login application which gets the passwords and usernames from users.
Today's application specs are as follows
1) There are four widgets- two Entry (single line textboxes), one button, one label in the program.
2) The user enters username in the first textbox. Password in the second textbox. But the password is encrypted (not shown)
3) After user hits the sign up button, the username is displayed on the label and the password is stored.
We will not store the password now, just make a dummy password entry function stub. The password can be stored in files in encrypted format or by other methods once we cover file handling in Python. Till that time, assume that the storepassword()
function stores the passwords and username automatically
Encrypting the entry widget.
We don't want others to see our passwords while we type them right? This can be achieved using the show="*"
attribute.
TB1=tk.Entry(form,width = 20,show="*")
import tkinter as tk
form=tk.Tk()
form.title("Example of Entry widget")
form.geometry('400x200')
TB1=tk.Entry(form,width = 20,show="*")
TB1.pack()
def show():
button.config(text=TB1.get())
button=tk.Button(form,text="", command=show)
button.pack()
form.mainloop()
show()
Let us now revisit yesterday's program and hide the entry widget.
Building the login screen.
We already have got the specifications of the program, so now let us start building it. Here is the code for the program, commented for explaination. Be sure to give it a try first before seeing the solution.
import tkinter as tk # import the Tkinter module
form=tk.Tk() # create the blank window.
form.title("password manager") # set the title as password manager
form.geometry('400x200') # set the default geometry of the window.
TB1=tk.Entry(form, width = 20)
# make an entry widget with 20 spaces for the username
TB2=tk.Entry(form,show="*", width = 20)
# entry widget for password and hide the keys whenever pressed.
# TB1 is for username, TB2 is for password
TB1.pack()
TB2.pack()
# pack the widgets into 'form'
label=tk.Label(form,text="")
# make a label to display the username
def show(): #function to be executed once the button is pressed.
a=TB1.get() # get username
b=TB2.get() # get password
if(a!="" and b!=""):
label.config(text="Welcome "+a+" to python GUI",fg="Green") # display the label
storepassword(a,b) # store password and username
else:
label.config(text="Please enter a valid username and password.",fg="Red") # blank screens
def storepassword(username, password):
#//Some mechanism to store password//
pass #stubbed
button=tk.Button(form,text="Sign Up", command=show) # setup the button
button.pack()
label.pack()
form.mainloop()
show()
Homework Run the above application (without seeing) debug and test it. Store the application in a file passwordmanager.pyw. and send me a pic on the comments below.
Well today's password manager is very secure....But tomorrow we will see a mechanism to steal the passwords by a spyware😈
So stay tuned for updates by following me.
Top comments (0)