Saltar al contenido principal

Visión general de NiceGUI.

NiceGUI es una potente biblioteca de interfaz gráfica de usuario (GUI) que proporciona a los desarrolladores una forma fácil de crear interfaces interactivas y visualmente atractivas para sus aplicaciones. En este tutorial, exploraremos la introducción, historia, características y ejemplos de NiceGUI.

Introducción​

NiceGUI es una biblioteca de GUI multiplataforma que fue desarrollada para simplificar el proceso de creación de interfaces de usuario. Está diseñado para ser fácil de usar y ofrece una amplia gama de características que lo hacen adecuado tanto para principiantes como para desarrolladores experimentados.

Historia​

NiceGUI fue lanzado por primera vez en 2010 por un equipo de desarrolladores que querían crear una biblioteca de GUI fácil de usar y con un aspecto y sensación modernos. Con el paso de los años, ha evolucionado y ganado popularidad entre los desarrolladores debido a su simplicidad y versatilidad.

Características​

NiceGUI ofrece una variedad de características que lo convierten en una herramienta potente para crear aplicaciones de GUI. Veamos algunas de sus características clave:

1. Compatibilidad multiplataforma​

NiceGUI está diseñado para ser multiplataforma, lo que significa que puede ejecutarse en diferentes sistemas operativos como Windows, macOS y Linux. Esto permite a los desarrolladores crear aplicaciones que funcionen sin problemas en múltiples plataformas.

2. Temas personalizables​

NiceGUI ofrece una amplia gama de temas personalizables, lo que permite a los desarrolladores crear interfaces visualmente atractivas que se ajusten a la imagen de marca o los requisitos de diseño de su aplicación. Estos temas se pueden aplicar fácilmente a toda la aplicación o a componentes específicos.

Aquí tienes un ejemplo de cómo aplicar un tema a un botón de NiceGUI:

import nicegui as ng

ng.theme('dark') # Aplicar el tema 'dark'

boton = ng.Button(text='Haz clic en mí')
boton.show()

En este ejemplo, la función theme se utiliza para aplicar el tema 'dark' a toda la aplicación. A continuación, se crea el widget Button con el texto especificado y se muestra en la pantalla.

3. Gestión de diseño​

NiceGUI ofrece opciones flexibles de gestión de diseño, lo que permite a los desarrolladores organizar y posicionar fácilmente los componentes dentro de sus interfaces. Admite varios administradores de diseño, como el diseño de cuadrícula, el diseño de caja y la posición absoluta.

Aquí tienes un ejemplo de cómo utilizar el administrador de diseño de cuadrícula para crear un formulario sencillo:

import nicegui as ng

formulario = ng.GridLayout()

etiqueta1 = ng.Label(text='Nombre:')
entrada1 = ng.TextInput()

etiqueta2 = ng.Label(text='Correo electrónico:')
entrada2 = ng.TextInput()

formulario.add(etiqueta1, 0, 0)
formulario.add(entrada1, 0, 1)
formulario.add(etiqueta2, 1, 0)
formulario.add(entrada2, 1, 1)

formulario.show()

En este ejemplo, se utiliza GridLayout para crear un diseño basado en cuadrícula. A continuación, se añaden los widgets Label y TextInput al formulario utilizando el método add, especificando sus posiciones dentro de la cuadrícula.

4. Manejo de eventos​

NiceGUI proporciona una forma sencilla de manejar las interacciones y eventos del usuario. Los desarrolladores pueden vincular fácilmente funciones a eventos específicos, como clics de botón o cambios en la entrada de texto, para realizar acciones en respuesta a la entrada del usuario.

Aquí tienes un ejemplo de cómo manejar un evento de clic de botón:

import nicegui as ng

def clic_del_boton():
ng.alert('¡Se ha hecho clic en el botón!')

boton = ng.Button(text='Haz clic en mí')
boton.on_click(clic_del_boton)
boton.show()

En este ejemplo, se utiliza el método on_click para vincular la función clic_del_boton al evento de clic del botón. Cuando se hace clic en el botón, se invoca la función clic_del_boton, que muestra un mensaje de alerta.

5. Amplio conjunto de widgets​

NiceGUI proporciona un amplio conjunto de widgets predefinidos que se pueden añadir fácilmente a la interfaz. Estos incluyen botones, etiquetas, entradas de texto, casillas de verificación, menús desplegables y más. Los desarrolladores pueden aprovechar estos widgets para crear interfaces altamente interactivas e intuitivas.

Aquí tienes un ejemplo de cómo utilizar varios widgets de NiceGUI:

import nicegui as ng

boton = ng.Button(text='Haz clic en mí')

etiqueta = ng.Label(text='¡Hola, NiceGUI!')

casilla_verificacion = ng.Checkbox(text='Marcame')

menu_desplegable = ng.Dropdown(options=['Opción 1', 'Opción 2', 'Opción 3'])

boton.show()
etiqueta.show()
casilla_verificacion.show()
menu_desplegable.show()

En este ejemplo, se crean un botón, una etiqueta, una casilla de verificación y un menú desplegable utilizando los respectivos widgets de NiceGUI. A continuación, se muestran cada uno de los widgets en la pantalla.

Ejemplos

Vamos a explorar algunos ejemplos más para demostrar las capacidades de NiceGUI.

Ejemplo 1: Creando una calculadora sencilla​

import nicegui as ng

def calcular():
num1 = int(entrada1.value)
num2 = int(entrada2.value)
resultado = num1 + num2
salida.value = str(resultado)

entrada1 = ng.TextInput()
entrada2 = ng.TextInput()
salida = ng.TextInput(readonly=True)
boton = ng.Button(text='Calcular', on_click=calcular)

ng.Row(entrada1, '+', entrada2, '=', salida, boton).show()

En este ejemplo, el usuario puede introducir dos números en los campos de entrada, y al hacer clic en el botón "Calcular" se mostrará la suma en el campo de salida.

Ejemplo 2: Creando una lista de tareas​

import nicegui as ng

tareas = []

def agregar_tarea():
tarea = entrada.value
tareas.append(tarea)
actualizar_lista()

def actualizar_lista():
listbox.options = tareas

entrada = ng.TextInput()
boton = ng.Button(text='Agregar tarea', on_click=agregar_tarea)
listbox = ng.ListBox(options=tareas)

ng.Row(entrada, boton).show()
listbox.show()

En este ejemplo, el usuario puede añadir elementos a una lista de tareas ingresándolos en el campo de entrada y haciendo clic en el botón "Agregar tarea". La lista de tareas se muestra en el widget de la lista.

Para obtener más información sobre NiceGUI y explorar todas sus características, puedes visitar el sitio web oficial aquí.