¿Qué es una GUI?
Una GUI o interfaz gráfica de usuario es un entorno interactivo para tomar respuestas de los usuarios sobre diversas situaciones como formularios, documentos, pruebas, etc. Proporciona al usuario una buena pantalla interactiva que una interfaz de línea de comandos (CLI) tradicional.
Lista de las mejores librerías GUI de Python
Entremos de lleno a ver las mejores librerías GUI para Python.
1. PyQT5
PyQT5 es un framework de interfaz gráfica de usuario (GUI) para Python. Es muy popular entre los desarrolladores y la GUI se puede crear mediante la codificación o un diseñador QT. Un marco de desarrollo QT es un marco visual que permite arrastrar y soltar widgets para construir interfaces de usuario.
Es un software libre, de código abierto de unión y se implementa para el marco de desarrollo de aplicaciones de plataforma cruzada. Se utiliza en Windows, Mac, Android, Linux y Raspberry PI.
Para la instalación de PyQT5 , puede utilizar el siguiente comando :
pip install pyqt5
Aquí se demuestra un código sencillo:
from PyQt5.QtWidgets import QApplication, QMainWindowimport sysclass Window(QMainWindow): def __init__(self): super().__init__() self.setGeometry(300, 300, 600, 400) self.setWindowTitle("PyQt5 window") self.show()app = QApplication(sys.argv)window = Window()sys.exit(app.exec_())
La salida del código anterior es la siguiente:
El equipo de desarrolladores de Python de ScienceSoft destaca las ventajas de utilizar PyQt:
PyQt es un conjunto maduro de bindings de Python a Qt para el desarrollo multiplataforma de apps de escritorio. Ofrece una rica selección de widgets incorporados y herramientas para la creación de widgets personalizados para dar forma a sofisticadas interfaces gráficas de usuario, así como un robusto soporte de bases de datos SQL para conectarse e interactuar con las bases de datos.
2. Python Tkinter
Otro marco de trabajo de interfaz gráfica de usuario se llama Tkinter. Tkinter es una de las bibliotecas GUI de Python más populares para desarrollar aplicaciones de escritorio. Es una combinación del TK y el framework GUI estándar de python.
Tkinter proporciona diversos widgets como etiquetas, botones, cuadros de texto, casillas de verificación que se utilizan en una aplicación de interfaz gráfica de usuario.
Los widgets de control de botones se utilizan para mostrar y desarrollar aplicaciones mientras que el widget de lienzo se utiliza para dibujar formas como líneas, polígonos, rectángulos, etc. en la aplicación. Además, Tkinter es una librería incorporada a Python, por lo que no es necesario instalarla como otro framework de GUI. A continuación se muestra un ejemplo de codificación utilizando Tkinter.
from tkinter import *class Root(Tk): def __init__(self): super(Root,self).__init__() self.title("Python Tkinter") self.minsize(500,400)root = Root()root.mainloop()
La salida del código anterior es como se muestra a continuación:
3. PySide 2
La tercera de las librerías GUI de Python de la que vamos a hablar es PySide2 o se puede llamar QT para python. Qt for Python ofrece los bindings oficiales de Python para Qt (PySide2), permitiendo el uso de sus APIs en aplicaciones Python, y una herramienta generadora de bindings (Shiboken2) que puede ser utilizada para exponer proyectos C++ en Python.
Qt para Python está disponible bajo la LGPLv3/GPLv3 y la licencia comercial de Qt.
Ahora os voy a mostrar el proceso de instalación y también un ejemplo. Así que para la instalación, puedes simplemente usar:
pip install PySide2
Aquí, hay un ejemplo para configurar el marco de la GUI usando PySide2.
from PySide2.QtWidgets import QtWidgets, QApplicationimport sysclass Window(QtWidgets): def __init__(self): super().__init__() self.setWindowTitle("Pyside2 Window") self.setGeometry(300,300,500,400)app = QApplication(sys.argv)window=Window()window.show()app.exec_()
La salida del código anterior es la que se muestra a continuación:
4. Kivy
Otro framework de GUI del que vamos a hablar se llama Kivy. Kivy es una librería de código abierto en Python para el desarrollo rápido de aplicaciones que hacen uso de interfaces de usuario innovadoras, como las apps multitáctiles.
Kivy funciona en Linux, Windows, OS X, Android, iOS y Raspberry Pi. Puede ejecutar el mismo código en todas las plataformas soportadas. Puede utilizar de forma nativa la mayoría de entradas, protocolos y dispositivos, incluyendo WM_Touch, WM_Pen, Mac OS X Trackpad y Magic Mouse, Mtdev, Linux Kernel HID.
Kivy es 100% libre de usar, bajo una licencia MIT.
El kit de herramientas está desarrollado, respaldado y utilizado profesionalmente. Se puede utilizar en un producto comercial. El framework es estable y tiene una API bien documentada, además de una guía de programación para ayudarte a empezar.
El motor gráfico de Kivy está construido sobre OpenGL ES 2, utilizando un pipeline gráfico moderno y rápido.
El toolkit viene con más de 20 widgets, todos ellos altamente extensibles. Muchas partes están escritas en C usando Cython, y probadas con tests de regresión.
Al llegar a la instalación de Kivy, necesitas instalar la dependencia «glew». Puedes usar el comando pip como se indica a continuación:
pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew
Introduce este comando y pulsa enter, se instalará. Después de eso tienes que escribir este comando para instalar Kivy:
pip install Kivy
Así que después de la instalación, déjame mostrarte un ejemplo sencillo de Kivy para mostrar lo fácil que es.
from kivy.app import Appfrom kivy.uix.button import Buttonclass TestApp(App): def build(self): return Button(text= " Hello Kivy World ")TestApp().run()
La salida del código anterior es la que se muestra a continuación:
5. wxPython
Así que el último framework GUI del que vamos a hablar es wxPython. wxPython es un kit de herramientas GUI multiplataforma para el lenguaje de programación Python.
Permite a los programadores de Python crear programas con una interfaz gráfica de usuario robusta y muy funcional, de forma sencilla y fácil. Está implementado como un conjunto de módulos de extensión de Python que envuelven los componentes de la interfaz gráfica de usuario de la popular biblioteca multiplataforma wxWidgets, que está escrita en C++.
Al igual que Python y wxWidgets, wxPython es de código abierto.
wxPython es un kit de herramientas multiplataforma. Esto significa que el mismo programa se ejecutará en múltiples plataformas sin modificación. Actualmente, las plataformas soportadas son Microsoft Windows, Mac OS X y macOS, y Linux.
Ahora voy a mostrar el proceso de instalación y crear un ejemplo sencillo. Así que para la instalación sólo tienes que escribir el siguiente comando:
pip install wxPython
Aquí tienes un ejemplo:
import wxclass MyFrame(wx.Frame): def __init__(self,parent,title): super(MyFrame,self).__init__(parent,title=title,size=(400,300)) self.panel=MyPanel(self)class MyPanel(wx.Panel): def __init__(self,parent): super(MyPanel,self).__init__(parent)class MyApp(wx.App): def OnInit(self): self.frame=MyFrame(parent=None, title= "wxPython Window") self.frame.show() return Trueapp = MyApp()app.MainLoop()
La salida del código anterior es la que se muestra a continuación:
Conclusión
Así que ahora hemos visto 5 librerías GUI de Python y en mi opinión, PySide2 y pyQt5 son los frameworks GUI más potentes. Pero vienen con una licencia comercial y eso explica que tengan muchas características. Tkinter, Kivy y wxPython son las librerías GUI libres para Python.
¿Cuál es tu librería GUI favorita en Python?