PySimpleGUI

De Wikipedia, la enciclopedia libre
PySimpleGUI
Información general
Lanzamiento inicial 11 de julio de 2018[1]
Licencia GNU Lesser General Public License v3.0[2]
Información técnica
Programado en Python
Versiones
Última versión estable 3.20.0 ( 18 de diciembre de 2018)
Enlaces

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]

Licencia[editar]

PySimpleGUI está aprobado por OSI bajo la Licencia Pública General Reducida de GNU.[2]

Objetivo[editar]

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[editar]

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.

Sus principales características incluyen:[5]

  • 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[editar]

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[editar]

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.

Hola Mundo[editar]

Ventana Hola Mundo con PySimpleGUI en Linux
import PySimpleGUI as sg

layout = [[sg.Text('Hola Mundo')], [sg.Ok()]]

window = sg.Window('Wikipedia Window',margins=(120, 60)).layout(layout)
event, data = window.read()

Cuadro de diálogo abrir carpeta[editar]

import PySimpleGUI as sg

text = sg.popup_get_folder('Introduzca el nombre de una carpeta')
sg.popup('Resultado', 'La carpeta es: ', text)

Compatibilidad[editar]

  • Python 2.7 tkinter
  • Python 3 tkinter
  • Qt
  • Windows
  • Mac
  • Linux
  • PyPy3

Referencias[editar]

  1. a b «PySimpleGUI». Libraries.io (en inglés). Consultado el 3 de julio de 2021. 
  2. a b https://github.com/PySimpleGUI/PySimpleGUI/blob/master/license.txt
  3. a b c «PySimpleGUI 4.45.0». pypi.org (en inglés). Consultado el 3 de julio de 2021. 
  4. «Add GUIs to your programs and scripts easily with PySimpleGUI». opensource.com/ (en inglés). 29 de agosto de 2018. Consultado el 3 de julio de 2021. 
  5. «Desarrollo de la GUI de Python, ¡una forma de aumentar la eficiencia 10 veces!». Programador Click. Consultado el 4 de julio de 2021. 
  6. a b «Python GUIs for Humans - Copy these design patterns!». pysimplegui.readthedocs.io (en inglés). Consultado el 4 de julio de 2021. 
  7. a b «Python GUIs for Humans». pysimplegui.readthedocs.io (en inglés). Consultado el 3 de julio de 2021. 
  8. «A simple yet powerful GUI built on top of tkinter». Python Awesome (en inglés). 19 de julio de 2018. Consultado el 3 de julio de 2021. 
  9. Driscoll, Mike. «PySimpleGUI: The Simple Way to Create a GUI With Python». Real Python (en inglés). Consultado el 4 de julio de 2021. 

Enlaces externos[editar]