Gooey: convierte casi cualquier programa de línea de comandos de Python en una aplicación GUI completa
(github.com/chriskiehl)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
ArgumentParsery arma la GUI. - Con
GooeyParserse 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_dirse 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
Comentarios en Hacker News
Explicación del desarrollador sobre el proyecto Gooey
argparseera una opción sólida.argparse.argparsesigue siendo la interfaz principal, pero no hay muchas alternativas adecuadas.Discusión sobre la relación entre Gooey y
argparseargparsees adecuado para tareas simples, pero hay muchas CLI basadas enClick, y también existen bibliotecas populares de CLI construidas sobreClick.Click, y si se limita solo aargparse, la expresión "casi todos" podría no ser precisa.Se comparten enlaces a discusiones anteriores sobre Gooey
Opinión de que el sistema operativo y el shell deberían poder ejecutar mejor los programas
Introducción al framework Textual
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
Pregunta sobre cómo integrar Gooey con herramientas CLI que esperan entrada del usuario
Interés en una herramienta que convierta de GUI a CLI
Mención del concepto Naked Objects
Curiosidad sobre si Gooey podría generar una app web