Example 5 : Frame Widget (Login pages)

 import tkinter as tk

from tkinter import messagebox


def login():

    username = entry_username.get()

    password = entry_password.get()

    

    # Simple authentication logic (for demonstration purposes)

    if username == "user" and password == "pass":

        messagebox.showinfo("Login Success", "You have successfully logged in!")

    else:

        messagebox.showerror("Login Failed", "Invalid username or password.")


# Create the main application window

root = tk.Tk()

root.title("Login Page Example")

root.geometry("300x200")


# Create a frame for the login form

login_frame = tk.Frame(root, bg="lightgrey", bd=2, relief=tk.SUNKEN)

login_frame.pack(padx=10, pady=10, fill=tk.BOTH, expand=True)


# Username label and entry

label_username = tk.Label(login_frame, text="Username:", bg="lightgrey")

label_username.grid(row=0, column=0, padx=5, pady=5, sticky=tk.W)

entry_username = tk.Entry(login_frame)

entry_username.grid(row=0, column=1, padx=5, pady=5)


# Password label and entry

label_password = tk.Label(login_frame, text="Password:", bg="lightgrey")

label_password.grid(row=1, column=0, padx=5, pady=5, sticky=tk.W)

entry_password = tk.Entry(login_frame, show="*")

entry_password.grid(row=1, column=1, padx=5, pady=5)


# Login button

button_login = tk.Button(login_frame, text="Login", command=login)

button_login.grid(row=2, columnspan=2, pady=10)


# Create a frame for the second login form (optional)

# This can be shown or hidden based on your application logic

login_frame2 = tk.Frame(root, bg="lightblue", bd=2, relief=tk.RAISED)

login_frame2.pack(padx=10, pady=10, fill=tk.BOTH, expand=True)


# Username label and entry for the second frame

label_username2 = tk.Label(login_frame2, text="Username:", bg="lightblue")

label_username2.grid(row=0, column=0, padx=5, pady=5, sticky=tk.W)

entry_username2 = tk.Entry(login_frame2)

entry_username2.grid(row=0, column=1, padx=5, pady=5)


# Password label and entry for the second frame

label_password2 = tk.Label(login_frame2, text="Password:", bg="lightblue")

label_password2.grid(row=1, column=0, padx=5, pady=5, sticky=tk.W)

entry_password2 = tk.Entry(login_frame2, show="*")

entry_password2.grid(row=1, column=1, padx=5, pady=5)


# Login button for the second frame

button_login2 = tk.Button(login_frame2, text="Login", command=login)

button_login2.grid(row=2, columnspan=2, pady=10)


# Run the application

root.mainloop()





Comments