[Tutor] login window using Tk

Alan Gauld alan.gauld at btinternet.com
Wed Nov 2 01:50:20 CET 2011

On 01/11/11 21:28, Chris Hare wrote:
> Good feedback Alan, thanks.
> I wasn't using the root window to hold the login form, although I
> suppose I could. I guess where I am stuck is the login to control
> displaying the login window, and hiding it to display the actual
> application window once the user has authenticated.

Thats what your command function does. So when the button is pressed 
your event handler authenticates the user details, if valid it closes 
the Login and shows the main window(which could be root...)
In pseudocode:

def doLogin(self):
     userid = idField.get()
     passwd = pwField.get()
     if self.validateUser(userid,passwd):
         self.beep()   # or whatever warning message you want
         self.logError("User authentication failed for " + userid)

Then in creating the button you pass that as the command handler:

btnLogin = Button(self.window, text="Login", command=doLogin)

Now, when the user hits the button the doLogin function will be called.
If the login is ok we show the main window and hide the login dialog.
If the entry is invalid we beep, clear the fields for a retry and log an 
error. We could also add a count so after, say, three attempts we close 
the app.

Alan G
Author of the Learn to Program web site

More information about the Tutor mailing list