Curso de desarrollo de aplicaciones con Kivy y Python: Creación de una interfaz de inicio de sesión

Posted by


En este tutorial vamos a aprender a desarrollar una interfaz de login utilizando Kivy, un framework de Python para el desarrollo de aplicaciones multiplataforma. La interfaz de login es una parte esencial de muchas aplicaciones, ya que permite a los usuarios autenticarse de manera segura.

Antes de comenzar, asegúrate de tener instalado Python en tu sistema. Si aún no lo tienes, puedes descargarlo desde la página oficial de Python. Además, necesitarás instalar Kivy en tu entorno de desarrollo. Puedes hacerlo a través de pip, el gestor de paquetes de Python, con el siguiente comando:

pip install kivy

Una vez que hayas instalado Kivy, estás listo para empezar a desarrollar la interfaz de login. Para empezar, crea un nuevo archivo Python y abre un editor de texto para escribir el código. Vamos a comenzar importando los módulos de Kivy que necesitaremos:

from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button

A continuación, crearemos una clase para nuestra aplicación, que hereda de la clase App de Kivy. Esta clase representará la ventana de la aplicación y contendrá todos los elementos de la interfaz de login:

class LoginApp(App):
    def build(self):
        layout = GridLayout(cols=2)

        layout.add_widget(Label(text='Usuario:'))
        self.username = TextInput(multiline=False)
        layout.add_widget(self.username)

        layout.add_widget(Label(text='Contraseña:'))
        self.password = TextInput(multiline=False, password=True)
        layout.add_widget(self.password)

        btn_login = Button(text='Login', on_press=self.login)
        layout.add_widget(btn_login)

        return layout

En este código, creamos un GridLayout con dos columnas para organizar los elementos de la interfaz de login. Añadimos dos etiquetas de texto para los campos de usuario y contraseña, así como dos campos de texto para que el usuario introduzca su información. También añadimos un botón de login que llamará a la función login cuando sea presionado.

Ahora vamos a implementar la función login, que verificará las credenciales ingresadas por el usuario y mostrará un mensaje de error si son incorrectas:

    def login(self, instance):
        username = self.username.text
        password = self.password.text

        if username == 'admin' and password == 'password':
            print('Login exitoso')
        else:
            print('Credenciales incorrectas')

En este código, comparamos el nombre de usuario y contraseña ingresados por el usuario con un valor de ejemplo. En un escenario real, estarías consultando una base de datos o algún otro método de autenticación para verificar las credenciales del usuario.

Por último, para iniciar la aplicación y mostrar la interfaz de login, añadimos las siguientes líneas al final del script:

if __name__ == '__main__':
    LoginApp().run()

Una vez que hayas escrito todo el código, guarda el archivo con la extensión .py y ejecútalo desde tu terminal o editor de código. Verás una ventana emergente con los campos de usuario y contraseña, así como un botón de login. Introduce las credenciales de ejemplo (‘admin’ y ‘password’) y verás un mensaje de éxito o error en la consola.

¡Y eso es todo! Ahora tienes una interfaz de login funcional utilizando Kivy y Python. Puedes personalizarla y añadir más funcionalidades según tus necesidades. ¡Espero que este tutorial te haya sido útil!

0 0 votes
Article Rating
16 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@AsCodigo
3 months ago

CONTINUA APRENDIENDO, BASE DE DATOS –> https://bit.ly/3pu67zP

@oscarfranco9805
3 months ago

Hola, os dejo la solucion al error que os va a dar si haceis este codigo hoy en dia con las versiones que hay ahora, os va a dar un error al ejecutar sobre 'MDTextFieldRound'. La solucion es desinstalar la version de kivymd que teneis poniendo esto en el terminal: pip uninstall kivymd. Una vez desinstalado descargar esta version asi: pip install kivymd==0.104.2 Espero que os sirva gente!!!

@adolfolozaa
3 months ago

MDTextFieldRound fue cambianda por MDTextField. La anterior no funciona más.

@giovannii.mendez4312
3 months ago

tengo una dura @AsCodigo tengo el siguiente error , instale kivymd y kivy : FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\trabajjo\Documents\KIVY\kivymd_venv\lib\site-packages\kivymd\uix\label\label.kv'

@cristiancontreras352
3 months ago

Me encantan tus videos, queria preguntarte algo, con TKINTER existe filedialog y en Kyvi q componente seria

@nicosimful
3 months ago

Excelente video, gracias.
Tengo un problema: cuando ejecuto el código, se abre la ventana pero se cierra inmediatamente, no se a que se deba.

@hectorfajardo3927
3 months ago

hola, ya revise el codigo y me lanza el siguiente error
Traceback (most recent call last):

File "C:UserspcqualityPycharmProjectspythonProject5Login.py", line 3, in <module>

from kivymd.uix.dialog import MDDialog

File "C:UserspcqualityPycharmProjectspythonProject5venvlibsite-packageskivymduix__init__.py", line 8, in <module>

from kivymd.uix.behaviors import SpecificBackgroundColorBehavior

File "C:UserspcqualityPycharmProjectspythonProject5venvlibsite-packageskivymduixbehaviors__init__.py", line 8, in <module>

from .backgroundcolor_behavior import (

File "C:UserspcqualityPycharmProjectspythonProject5venvlibsite-packageskivymduixbehaviorsbackgroundcolor_behavior.py", line 25, in <module>

from kivymd.color_definitions import hue, palette, text_colors

ImportError: cannot import name 'hue' from 'kivymd.color_definitions' (C:UserspcqualityPycharmProjectspythonProject5venvlibsite-packageskivymdcolor_definitions.py)

Process finished with exit code 1

@danielalarcons1584
3 months ago

Hola bro, sabes como solucionar ese error que te aparece al final? ¨LoginApp.close() takes 1 positional argument but 2 were given¨

@dannyfg9735
3 months ago

2:32 importé todo pero este código no me aparece. Tengo que escribirlo todo o hay algún atajo para ponerlo?

@darioking5069
3 months ago

Buen video amigo, no tienes un grupo de telegram donde pueda hacer algunas preguntas?

@scbtccoinspa5282
3 months ago

Code please !?

@giancarlogarcia3838
3 months ago

Excelente video bro

@stivenantequeraferrer181
3 months ago

Buen video, felicidades

@ang3l519
3 months ago

Grandioso👍👌👏👏

@the_binary_king
3 months ago

⭐⭐⭐⭐⭐

@jorgedanielcata2042
3 months ago

buenísimo bro 👍