Using the login window

To use the dialog, our application needs a method that will display the dialog in an infinite loop until either the user clicks Cancel or the provided credentials successfully authenticate.

Start a new database_login() method in Application:

        def database_login(self):
            error = ''
            db_host = self.settings['db_host'].get()
            db_name = self.settings['db_name'].get()            title = "Login to {} at {}".format(db_name, db_host)

We begin by setting up an empty error string and a title string to pass to our LoginDialog class.

Now we'll start the infinite loop:

        while True:
            login = v.LoginDialog(self, title, error)
            if not login.result:
                break

Inside the loop, we create a LoginDialog, which will block until the user clicks one button or ...

Get Python GUI Programming with Tkinter now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.