Tkinter es una biblioteca de Python que permite crear interfaces gráficas de usuario (GUI, por sus siglas en inglés) de manera sencilla. Esta librería viene incluída en la instalación básica de Python y permite crear interfaces para Linux, Windows y Mac.
La interfaz con Tkinter si bien ofrece muchos controles y es bastante práctica la apariencia es muy básica y quizás no te facilite aplicar estilos modernos a tus aplicaciones. Por ejemplo este s un código para generar una ventana de login básica:
import tkinter as tk
def login():
username = username_entry.get()
password = password_entry.get()
if username == "usuario" and password == "clave":
message_label.config(text="¡Bienvenido!")
else:
message_label.config(text="Nombre de usuario o clave incorrectos")
# Crear ventana
root = tk.Tk()
root.title("Ventana de login")
# Crear campos de entrada
username_label = tk.Label(root, text="Usuario:")
username_label.pack()
username_entry = tk.Entry(root)
username_entry.pack()
password_label = tk.Label(root, text="Clave:")
password_label.pack()
password_entry = tk.Entry(root, show="*")
password_entry.pack()
# Crear botón de login
login_button = tk.Button(root, text="Ingresar", command=login)
login_button.pack()
# Crear etiqueta de mensaje
message_label = tk.Label(root, text="")
message_label.pack()
# Ejecutar ventana
root.mainloop()pip install customtkinter
Continuando con el ejemplo anterior, creamos una versión de una ventana de Login.
#Importamos librerías
import customtkinter
import tkinter
#Creamos la clase principal heredando de customtkinter
class App(customtkinter.CTk):
def __init__(self):
super().__init__()
# Crear ventana
self.title("App Login")
self.minsize(400, 300)
# Configurar grid
self.grid_columnconfigure(1, weight=1)
self.grid_columnconfigure((2, 3), weight=0)
self.grid_rowconfigure((0, 1, 2), weight=1)
# Crear frame para agrupar controles
fmeLogin = customtkinter.CTkFrame(master=self, width=200, height=200)
fmeLogin.grid(row=0, column=0,columnspan=3,pady=20,padx=20)
# Crear campos de entrada
lblUsuario = customtkinter.CTkLabel(master=fmeLogin, text="Usuario")
lblUsuario.grid(row=1, column=0, padx=10,pady=10)
username= customtkinter.CTkEntry(master=fmeLogin,
placeholder_text="Usuario",
border_width=2,
corner_radius=10)
username.grid(row=1, column=2,padx=20)
lblPassword = customtkinter.CTkLabel(master=fmeLogin, text="Password")
lblPassword.grid(row=2, column=0, padx=20)
username= customtkinter.CTkEntry(master=fmeLogin,
placeholder_text="Password",
border_width=2,
corner_radius=10)
username.grid(row=2, column=2,padx=20)
# Crear botón de login
button = customtkinter.CTkButton(master=fmeLogin, command=self.button_callback,text="Ingresar")
button.grid(row=3, sticky="ew",pady=10,columnspan=3,padx=20)
# Acción del botón
def button_callback(self):
print("button pressed")
if __name__ == "__main__":
app = App()
app.mainloop()
0 Comentarios