PySimpleGUI es un contenedor de la API de Python del módulo Tkinter que permite al programador utilizar los mismos elementos de la interfaz de usuario que con Tkinter pero con una interfaz más intuitiva. PySimpleGUI se estableció con el propósito de crear un proceso de desarrollo de la GUI de Python más fácil de usar, y agrega la capacidad de definir diseños personalizados.[3]
Lanzado en julio de 2018, PySimpleGUI buscó una solución para optimizar los esfuerzos de desarrollo de la GUI de Python y facilitar a los usuarios el uso de una interfaz gráfica.[1] Está dirigido al desarrollador, para que puedan crear una GUI personalizada con un código lo más conciso posible.[4]
Características
Está completamente basado en el lenguaje Python y se utiliza para desarrollar interfaces GUI de manera muy conveniente. Tiene una interfaz de estilo Python muy amigable que mejora sustancialmente la eficiencia del desarrollo.
Las ventanas de interfaz y los controles utilizados son los mismos que los de tkinter, Qt, WxPython y Remi.
El código escrito se reduce entre un 50% y un 90%.
No es necesario escribir la función de devolución de llamada.
Se uede acceder a todos los controles en el marco de la GUI.
Admite GUI web y de escritorio.
Tiene una interfaz amigable
Está orientada a desarrolladores de Python novatos y experimentados.
Existen más de 170 programas de demostración que explican cómo integrar paquetes actualmente populares, como OpenCV, Matplotlib, PyGame, etc.
Hay una amplia documentación.
Las características de PySimpleGUI se pueden dividir en llamadas de “alto nivel” que permiten a la persona que las utiliza realizar operaciones de entrada/salida en una sola llamada de función y capacidades de “GUI personalizada”. Las llamadas de alto nivel suelen comenzar con "Popup". El más básica es Popup, que muestra un número variable de elementos en una ventana emergente. Se parecen a la declaración "print" incorporada, tomando cualquier número de variables en cualquier formato y mostrándolas en una ventana. Las llamadas Popup que recopilan la entrada del usuario incluyen PopupGetText, PopupGetFile y PopupGetFolder.[6] Las GUI personalizadas se logran creando primero un "diseño de GUI" que se utiliza para crear y mostrar una ventana. El diseño de la GUI se compone de "Elementos", el término de PySimpleGUI para un "Widget" de la GUI.
Se puede simplificar y compactar el código aprovechando dos de los "atajos" de PySimpleGUI. Los nombres de los elementos se pueden escribir en formato abreviado. Reduce la cantidad de texto en el código sin perder significado.
Un segundo mecanismo de atajo son los botones predefinidos. Estos son botones que se encuentran comúnmente en todas las GUI, como "aceptar", "cancelar", "sí". En lugar de escribir Button ('ok'), un atajo de botón permite escribir Ok(*), Cancel(), Yes().[7]
Ejemplos de elementos UI, botones y abreviaciones
Elementos UI
Botones
Abreviaciones
Checkbox
Column
FileBrowse
Image
InputCombo
InputText
Listbox
Multiline
Output
ProgressBar
Radio
ReadFormButton
RealtimeButton
SimpleButton
Slider
Spin
Text
FolderBrowse
Cancel
Exit
FileBrowse
FileSaveAs
FolderBrowse
No
OK
Ok
Quit
ReadFormButton
RealtimeButton
Save
SimpleButton
Submit
Yes
T = Text
Txt = Text
In = InputText
Input = IntputText
Combo = InputCombo
DropDown = InputCombo
Drop = InputCombo
Objetivos de Diseño
El objetivo de PySimpleGUI con la API es facilitarle la tarea al programador y que pueda trabajar como siempre lo ha hecho en Python. Dado que las GUI son visuales, es deseable que el código coincida visualmente con lo que se ve en la pantalla.[3]
Algunos ejemplos de cómo este paquete utiliza las construcciones del lenguaje de forma natural y aprovecha algunas de las mejores caracterísitcas de Python:[7]
Los formularios se representan como listas de Python.
Un formulario es una lista de filas.
Una fila es una lista de elementos.
Los valores devueltos son una lista botones pulsados y valores de entrada.
Los valores devueltos también se pueden representar como un diccionario.
Las llamadas al SDK se contraen en una sola línea de código Python que presenta una GUI personalizada y devuelve valores.[8]
Además de una API similar a Python, la documentación de PySimpleGUI proporciona una serie de fragmentos de código de ejemplo que permiten a los desarrolladores que lo necesiten ponerse en marcha copiando, pegando, y a veces modificando el código para crear la GUI deseada sin necesidad de aprender los fundamentos de la biblioteca antes de usarla.[3]
Ejemplos
PySimpleGUI se centra en la creación de la interfaz de usuario nativa de Python con un código lo más sencillo posible. Al crear una interfaz de usuario, cada llamada tiene parámetros opcionales que permiten cambiar la apariencia.[6][9] Se puede cambiar el color de un botón agregando un parámetro button_color a su widget.
Con una GUI simple, resulta práctico "asociar" archivos .py con el intérprete de Python en Windows. Al hacer doble clic en un archivo .py y aparecerá una ventana GUI, una experiencia más agradable que abrir una ventana DOS y escribir un comando.