3 puntos por GN⁺ 2023-12-10 | 1 comentarios | Compartir por WhatsApp

Convertir programas de consola de Python en aplicaciones GUI con Gooey

  • Gooey es una herramienta que convierte programas de consola de Python 3 en aplicaciones GUI amigables para el usuario.
  • En lugar de usar el símbolo del sistema, ofrece una GUI para hacer que el programa sea más fácil de usar y más atractivo.
  • Es útil para crear scripts dirigidos a personas no programadoras o utilidades para tareas como mover datos.

Cómo funciona Gooey

  • Gooey se integra al código agregando un decorador a un método que contiene declaraciones de argparse.
  • Al ejecutarse, analiza el script de Python, extrae las referencias a ArgumentParser y arma la GUI.
  • Con GooeyParser se puede controlar con mayor precisión qué widgets se muestran en la GUI.

Internacionalización de Gooey

  • Gooey puede traducirse fácilmente a varios idiomas y actualmente incluye más de 18 traducciones.
  • Agregar soporte para un nuevo idioma es tan simple como añadir pares clave/valor en el directorio gooey/languages/.

Configuración global de Gooey

  • La apariencia y sensación general de Gooey puede personalizarse pasando argumentos al decorador.
  • Se pueden personalizar varios componentes, como la codificación, el idioma, el tamaño inicial y la configuración de fuentes.

Personalización del layout de Gooey

  • Gooey ofrece un layout flexible mediante algunas personalizaciones sencillas.
  • Brinda varias opciones de layout, como mostrar u ocultar la barra lateral o usar grupos de pestañas.

Modos de ejecución de Gooey

  • Gooey ofrece varios modos de visualización que permiten ajustar el layout según el tipo de contenido y el nivel de experiencia del usuario.
  • Mediante los modos avanzado, básico y sin configuración, puede ofrecer una GUI adaptada a distintas necesidades.

Menús de Gooey

  • Se pueden agregar grupos y elementos de menú personalizados a la barra de menús de Gooey.
  • Admite varios tipos de opciones de menú para mostrar información del programa, cuadros de diálogo de mensajes, enlaces y más.

Validación dinámica de Gooey

  • Antes de pasar la entrada del usuario al programa, Gooey puede ejecutar opcionalmente una validación previa para comprobar que todos los argumentos pasen la validación.

Eventos del ciclo de vida y control de UI en Gooey

  • Gooey ofrece hooks del ciclo de vida que permiten realizar acciones adicionales tras una ejecución exitosa o fallida del programa y controlar el estado actual de la UI.

Visualización del progreso en Gooey

  • Gooey puede actualizar el estado de la barra de progreso con base en actualizaciones de progreso en texto.
  • Se puede informar el progreso a Gooey mediante expresiones regulares y expresiones de evaluación personalizadas.

Personalización de íconos en Gooey

  • Gooey ofrece la capacidad de reemplazar los íconos predeterminados por imágenes o íconos personalizados.
  • A través del argumento image_dir se puede especificar un directorio de imágenes personalizado.

Empaquetado de Gooey

  • Empaquetar Gooey como ejecutable es muy fácil, y se puede usar pyinstaller para agrupar la aplicación en un ejecutable listo para usar.

Opinión de GN⁺

Lo más importante de este artículo es que Gooey permite convertir fácilmente programas de consola de Python en aplicaciones GUI. Esto puede hacer que los programas resulten más familiares y accesibles para usuarios que no son programadores, permitiendo además que los desarrolladores se concentren en la lógica sin preocuparse por la interfaz de usuario. Las distintas configuraciones y opciones de personalización de Gooey ofrecen una alternativa atractiva para los desarrolladores, y pueden contribuir significativamente a reducir la barrera de entrada al desarrollo de interfaces gráficas.

1 comentarios

 
GN⁺ 2023-12-10
Comentarios en Hacker News
  • Explicación del desarrollador sobre el proyecto Gooey

    • Gooey es un proyecto antiguo; cuando comenzó, argparse era una opción sólida.
    • Actualmente Gooey usa JSON y está desacoplado de argparse.
    • argparse sigue siendo la interfaz principal, pero no hay muchas alternativas adecuadas.
    • Con Gooey se puede invocar no solo Python, sino también ejecutables arbitrarios.
    • Sobre el hecho de que el último commit fue hace 2 años, expresa la tristeza de que, con la edad y el cambio de prioridades, se haya vuelto difícil justificar trabajar en software gratis.
  • Discusión sobre la relación entre Gooey y argparse

    • argparse es adecuado para tareas simples, pero hay muchas CLI basadas en Click, y también existen bibliotecas populares de CLI construidas sobre Click.
    • No está confirmado si es compatible con Click, y si se limita solo a argparse, la expresión "casi todos" podría no ser precisa.
    • A pesar de que hay issues abiertos que no inspiran mucha confianza en el proyecto, la idea del proyecto en sí es interesante.
  • Se comparten enlaces a discusiones anteriores sobre Gooey

    • Se incluyen enlaces que indican que hubo discusiones sobre Gooey en Hacker News en junio de 2021 y agosto de 2014.
  • Opinión de que el sistema operativo y el shell deberían poder ejecutar mejor los programas

    • Se espera que los programas puedan comunicarse en formato JSON/protocolo para mejorar la estructura de comandos del shell o la GUI.
    • Actualmente se exportan archivos de autocompletado del shell, existen varios estilos de flags y bibliotecas de parsing, y no hay GUI.
  • Introducción al framework Textual

    • Se presenta el framework Textual, con el que se pueden construir interfaces de usuario que corren en la terminal y en el navegador web usando una API sencilla en Python.
  • Consulta sobre una versión con GUI para ffmpeg

    • Se expresa interés en una herramienta que ofrezca una GUI para los parámetros de ffmpeg.
  • Pregunta sobre cómo integrar Gooey con herramientas CLI que esperan entrada del usuario

    • Hay interés en cómo agregar una GUI a un script de bisect para depurar un motor de juegos, de modo que ayude al usuario a diagnosticar problemas.
  • Interés en una herramienta que convierta de GUI a CLI

    • Se expresa el deseo de una herramienta que haga lo contrario: convertir una GUI en CLI.
  • Mención del concepto Naked Objects

    • Se explica Naked Objects como una idea en la que, al definir clases y anotaciones de Java, se genera automáticamente una GUI o un frontend web.
  • Curiosidad sobre si Gooey podría generar una app web

    • Surge la duda de si Gooey podría generar una app web sin React ni JS.
    • Se menciona como comparación Python Script Server, una herramienta low-code que pone un frontend web delante de programas CLI.