¿Cómo puedo integrar Tkinter con la pantalla de inicio de sesión de Python?

Estoy usando Tkinter para crear una pantalla de inicio de sesión aquí. En este momento, el botón “Mantenerme conectado” en la parte inferior es redundante y seguirá siéndolo. Lo que quiero hacer es usar este código:

from tkinter import * root = Tk() label_1 = Label(root, text="Username") label_2 = Label(root, text="Password") entry_1 = Entry(root) entry_2 = Entry(root) label_1.grid(row=0, sticky=E) label_2.grid(row=1, sticky=E) entry_1.grid(row=0, column=1) entry_2.grid(row=1, column=1) checkbox = Checkbutton(root, text="Keep me logged in") checkbox.grid(columnspan=2) 

en conjunto con:

 username = "john" input("Username: ") while not username: if username == "john": print("Welcome") else: print("User not found") password = "password" while not password: input("password: ") if password == "password": print("Logged in") else: print("Incorrect password") 

Sin embargo, el código de inicio de sesión no funciona y, además, no sé por dónde empezar con la integración de los dos. Soy algo nuevo para Python y más aún para Tkinter, pero estoy desesperado por esta ayuda.

¡Gracias por adelantado!

    Extendí tu ejemplo. Hice una clase que contiene su ventana de inicio de sesión.

     from tkinter import * import tkinter.messagebox as tm class LoginFrame(Frame): def __init__(self, master): super().__init__(master) self.label_username = Label(self, text="Username") self.label_password = Label(self, text="Password") self.entry_username = Entry(self) self.entry_password = Entry(self, show="*") self.label_username.grid(row=0, sticky=E) self.label_password.grid(row=1, sticky=E) self.entry_username.grid(row=0, column=1) self.entry_password.grid(row=1, column=1) self.checkbox = Checkbutton(self, text="Keep me logged in") self.checkbox.grid(columnspan=2) self.logbtn = Button(self, text="Login", command=self._login_btn_clicked) self.logbtn.grid(columnspan=2) self.pack() def _login_btn_clicked(self): # print("Clicked") username = self.entry_username.get() password = self.entry_password.get() # print(username, password) if username == "john" and password == "password": tm.showinfo("Login info", "Welcome John") else: tm.showerror("Login error", "Incorrect username") root = Tk() lf = LoginFrame(root) root.mainloop() 

    Lo siento por no pasar por cada línea lo que está sucediendo allí. Te lo dejo a ti para que lo averigües. Es un buen ejercicio. Pero diré que lo más importante es command = self._login_btn_clicked . Esta función se ejecutará cuando haga clic en el botón de inicio de sesión. En esta función, toma los valores de nombre de usuario y contraseña, y verifica si son correctos. También no adjunté ninguna callback a la checkbox. Pero sería similar a lo que ya está hecho.

    Edición: Editado según lo solicitado en los comentarios.

    Solicitud de inicio de sesión

    Probablemente quieras un botón de “Iniciar sesión”, ¿verdad? Si lo creas, puedes vincular una función para que se ejecute cuando se haga clic con el argumento de command del botón. En la función que llama el botón, puede realizar las comprobaciones para el nombre de usuario y la contraseña correctos. Sin embargo, no use los bucles while, solo verifique una vez cada vez que se presiona el botón y responda en consecuencia.