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 ...