Module ui.window.login

Login GUI Window implemented with Tkinter w/ built-in tester

Expand source code
"""
Login GUI Window implemented with Tkinter w/ built-in tester
"""
from tkinter.ttk import Frame, Label, Entry, Button

import ui
from ui.window import TkinterWindow


class LoginWindow(TkinterWindow):
    """
    Login GUI Window
    """

    def __init__(self, event_handlers):
        """Have a username, password, and submit button"""
        super().__init__(event_handlers)

        self.master.title("EmpDat Login")
        self.master.resizable(False, False)

        main = Frame(self.master)

        icon_image = ui.load_image("ui/icons/EmpDat.gif")
        icon = Label(main, image=icon_image)
        icon.image = icon_image
        icon.pack(padx=10, pady=10)

        self.title = Label(main, text="EmpDat")
        self.title.pack(pady=10)

        self.username = Label(main, text="Employee ID")
        self.entry = Entry(main, width=50)
        self.username.pack()
        self.entry.pack(padx=10)

        self.password = Label(main, text="Password")
        self.password_entry = Entry(main, width=50, show="•")
        self.password.pack()
        self.password_entry.pack(padx=10)

        self.submit_button = Button(
            main,
            text="Submit",
            command=lambda: event_handlers['submit'](self.entry.get(), self.password_entry.get()),
        )
        self.submit_button.pack(pady=10)

        main.pack()

        self.master.bind('<Return>',
                         lambda x: event_handlers['submit'](self.entry.get(),
                                                            self.password_entry.get())
                         )

    def validate(self):
        """
        Validates login fields
        :return: bool is_valid
        """
        if len(self.entry.get()) <= 0:
            self.show_error('Username required', 'No username given.')
            return False
        return True


if __name__ == '__main__':
    login_page = LoginWindow({
        'submit': lambda x, y: print('submitted! received:', x, y)
    })
    login_page.mainloop()

Classes

class LoginWindow (event_handlers)

Login GUI Window

Have a username, password, and submit button

Expand source code
class LoginWindow(TkinterWindow):
    """
    Login GUI Window
    """

    def __init__(self, event_handlers):
        """Have a username, password, and submit button"""
        super().__init__(event_handlers)

        self.master.title("EmpDat Login")
        self.master.resizable(False, False)

        main = Frame(self.master)

        icon_image = ui.load_image("ui/icons/EmpDat.gif")
        icon = Label(main, image=icon_image)
        icon.image = icon_image
        icon.pack(padx=10, pady=10)

        self.title = Label(main, text="EmpDat")
        self.title.pack(pady=10)

        self.username = Label(main, text="Employee ID")
        self.entry = Entry(main, width=50)
        self.username.pack()
        self.entry.pack(padx=10)

        self.password = Label(main, text="Password")
        self.password_entry = Entry(main, width=50, show="•")
        self.password.pack()
        self.password_entry.pack(padx=10)

        self.submit_button = Button(
            main,
            text="Submit",
            command=lambda: event_handlers['submit'](self.entry.get(), self.password_entry.get()),
        )
        self.submit_button.pack(pady=10)

        main.pack()

        self.master.bind('<Return>',
                         lambda x: event_handlers['submit'](self.entry.get(),
                                                            self.password_entry.get())
                         )

    def validate(self):
        """
        Validates login fields
        :return: bool is_valid
        """
        if len(self.entry.get()) <= 0:
            self.show_error('Username required', 'No username given.')
            return False
        return True

Ancestors

Methods

def validate(self)

Validates login fields :return: bool is_valid

Expand source code
def validate(self):
    """
    Validates login fields
    :return: bool is_valid
    """
    if len(self.entry.get()) <= 0:
        self.show_error('Username required', 'No username given.')
        return False
    return True

Inherited members