Login
Creamos el archivo login.py y escribimos el siguiente código
import sqlite3
import tkinter as tk
from tkinter import messagebox
def bloquear_cierre():
pass
def verificar_credenciales():
email = entry_usuario.get()
contra = entry_contrasena.get()
conexion = sqlite3.connect('miconoprac.db')
cursor = conexion.cursor()
cursor.execute('SELECT * FROM usuario WHERE email = ? AND password = ?', (email,contra))
usuario_valido = cursor.fetchone()
conexion.close()
if usuario_valido:
if email == usuario_valido[3] and contra == usuario_valido[4]:
messagebox.showinfo("Éxito", "¡Inicio de sesión exitoso!")
ventana.withdraw()
abrir_ventana_principal()
else:
messagebox.showerror("Error", "Usuario o contraseña incorrectos")
def abrir_ventana_principal():
# Creamos la nueva ventana
ventana_principal = tk.Toplevel()
ventana_principal.title("Mi Control de nómina práctico")
ventana_principal.geometry("400x300")
barra_menus = tk.Menu()
menu_usuario = tk.Menu(barra_menus, tearoff=False)
menu_nomina = tk.Menu(barra_menus, tearoff=False)
menu_salir = tk.Menu(barra_menus, tearoff=False)
barra_menus.add_cascade(menu=menu_usuario, label="Usuarios")
barra_menus.add_cascade(menu=menu_nomina, label="Nómina")
barra_menus.add_cascade(menu=menu_salir, label="Salir")
menu_salir.add_command(label="Salir", command=ventana.destroy)
# Elementos de la nueva ventana
tk.Label(ventana_principal, text="MICONOPRAC", font=("Arial", 18)).pack(pady=50)
ventana_principal.protocol("WM_DELETE_WINDOW", bloquear_cierre)
ventana_principal.config(menu=barra_menus)
# Configuración de la ventana principal
ventana = tk.Tk()
ventana.title("Inicio de sesión")
ventana.geometry("400x500")
ventana.eval('tk::PlaceWindow . center') # Centra la ventana en la pantalla
# Etiquetas y campos de entrada
tk.Label(ventana, text="Email:").pack(pady=10)
entry_usuario = tk.Entry(ventana,width=30)
entry_usuario.pack()
tk.Label(ventana, text="Contraseña:").pack(pady=10)
entry_contrasena = tk.Entry(ventana, show="*",width=30) # El 'show' oculta los caracteres
entry_contrasena.pack()
# Botón de Login
tk.Button(ventana, text="Iniciar Sesión", command=verificar_credenciales).pack(pady=20)
# Bucle principal para mantener la ventana abierta
ventana.mainloop()
Primera prueba
Corremos el ejemplo para probar login metemos el email y password y le damos Iniciar SesiónLe damos aceptar