I'm totally new to python and Tkinter and trying to make a login window that leads to another page, if the right username and password are submited. Works pretty well, but the window is not centered, tried everything but nothing works, it doesn't move at all. This is my code, I hope some1 can help class logInWindow(tk.Frame): def __init__(self, parent, controller): tk.Frame.__init__(self, parent) self.configure(bg='white') header = ttk.Label( self, text="SRH-WIP", anchor="center", style="Header.TLabel" ) # Footer als TTK-Label bottom = ttk.Label( self, style="Footer.TLabel" ) # TTK Style style = ttk.Style() style.configure("Header.TLabel", foreground='white', background='#DF4807', font=("Inter", 50, 'bold')) style.configure("Footer.TLabel", background='#D9D9D9') # login button def login(): username = "Jack" password = "12345" if username_entry.get() == username and password_entry.get() == password: #messagebox.showinfo(title="Erfolgreich", message="Anmeldung erfolgreich") controller.show_frame(mainPage) # Zeige die MainPage, wenn Login erfolgreich else: messagebox.showinfo(title="Fehler", message="Passwort oder Benutzername falsch") login_frame = tk.Frame(self, bg='white') # create Anmelde Widget login_label = tk.Label(login_frame, text="", bg='white', font=("Inter", 23, 'bold')) username_label = tk.Label(login_frame, text="Benutzername", bg='white', font=("Inter", 19)) username_entry = tk.Entry(login_frame, bg='white', font=("Inter", 15)) password_entry = tk.Entry(login_frame, show="*", bg='white', font=("Inter", 15)) password_label = tk.Label(login_frame, text="Passwort ", bg='white', font=("Inter", 19)) login_button = tk.Button( login_frame, text="Login", bg='#081424', fg='white', font=("Inter", 20, 'bold'), command=login) # place on screen Anmelde Widget login_label.grid(row=5, column=1, columnspan=3, sticky="", padx=40, pady=40) username_label.grid(row=6, column=1) username_entry.grid(row=7, column=1, padx=30, pady=10) password_label.grid(row=8, column=1) password_entry.grid(row=9, column=1, padx=30, pady=10) login_button.grid(row=10, column=0, columnspan=2, padx=40, pady=30) # Platziere Header und Footer relativ zur Fenstergröße header.place(relx=0, rely=0, relwidth=1, relheight=0.1) bottom.place(relx=0, rely=0.85, relwidth=1, relheight=0.13) login_frame.grid(row=1, column=0) I tried: # Widgets in der Mitte zentrieren login_label.grid(row=0, column=0, columnspan=3, sticky="nsew", padx=40, pady=(40, 10)) username_label.grid(row=1, column=0, sticky="nsew") username_entry.grid(row=2, column=0, padx=30, pady=10, sticky="nsew") password_label.grid(row=3, column=0, sticky="nsew") password_entry.grid(row=4, column=0, padx=30, pady=10, sticky="nsew") login_button.grid(row=5, column=0, padx=40, pady=30, sticky="nsew") # create Anmelde Widget login_label = tk.Label(login_frame, text="", bg='white', font=("Inter", 23, 'bold')) username_label = tk.Label(login_frame, text="Benutzername", bg='white', font=("Inter", 19)) username_entry = tk.Entry(login_frame, bg='white', font=("Inter", 15)) password_label = tk.Label(login_frame, text="Passwort", bg='white', font=("Inter", 19)) password_entry = tk.Entry(login_frame, show="*", bg='white', font=("Inter", 15)) login_button = tk.Button( login_frame, text="Login", bg='#081424', fg='white', font=("Inter", 20, 'bold'), command=login) # place on screen Anmelde Widget login_label.grid(row=0, column=0, columnspan=3, sticky="nsew", padx=40, pady=(40, 10)) username_label.grid(row=1, column=0, sticky="nsew") username_entry.grid(row=2, column=0, padx=30, pady=10, sticky="nsew") password_label.grid(row=3, column=0, sticky="nsew") password_entry.grid(row=4, column=0, padx=30, pady=10, sticky="nsew") login_button.grid(row=5, column=0, padx=40, pady=30, sticky="nsew") login_frame.grid_rowconfigure(0, weight=1) # Für den login_label login_frame.grid_rowconfigure(1, weight=1) # Für den username_label login_frame.grid_rowconfigure(2, weight=1) # Für den username_entry login_frame.grid_rowconfigure(3, weight=1) # Für den password_label login_frame.grid_rowconfigure(4, weight=1) # Für den password_entry login_frame.grid_rowconfigure(5, weight=1) # Für den login_button Continue reading...