Este artículo se publicó originalmente en mayo de 2016 y se ha actualizado con nueva información.
llega un momento en el viaje de la mayoría de los programadores cuando están listos para ramificar más allá de los ejemplos básicos y comenzar a construir una interfaz gráfica para su programa.
en Python, los pasos para comenzar con la programación GUI no son terriblemente complejos, pero requieren que el usuario comience a tomar algunas decisiones., Por su naturaleza como un lenguaje de programación de propósito general con intérpretes disponibles en todos los sistemas operativos comunes, Python tiene que ser bastante agnóstico en cuanto a las opciones que presenta para crear interfaces gráficas de usuario.
afortunadamente, hay muchas opciones disponibles para los programadores que buscan crear una manera fácil para que los usuarios interactúen con sus programas. Existen enlaces para varios marcos de interfaz de usuario en una variedad de plataformas, incluidas las nativas de Linux, Windows y Mac, y muchas que funcionan en los tres.,
antes de ir más lejos, sea su propio abogado del diablo por un momento y pregunte: ¿realmente tiene sentido que su aplicación tenga una interfaz gráfica de usuario tradicional? Para algunos programas, la respuesta es obvia. Si su aplicación es inherentemente gráfica, y está optimizada o simplemente tiene sentido que se ejecute localmente en una sola máquina local, entonces sí, probablemente debería considerar la creación de una interfaz gráfica de usuario de escritorio. Muchas veces, esto se hace obvio por lo que estás diseñando.
pero para programas de propósito general, no cuente ni la línea de comandos ni una interfaz web., La línea de comandos ofrece muchas ventajas (velocidad, acceso remoto, reutilización, scriptability y control) que pueden ser más importantes para los usuarios de su aplicación que una interfaz gráfica, y hay muchas bibliotecas como Click, Cement y Cliff que facilitan el diseño de excelentes programas de línea de comandos.
del mismo modo, una interfaz web, incluso para un programa destinado a ejecutarse localmente, podría ser una opción que vale la pena considerar, particularmente si cree que sus usuarios pueden desear alojar su aplicación de forma remota, y proyectos como Django, Flask o Pyramid hacen que esto sea sencillo., Incluso puede usar una biblioteca como pywebview para poner un envoltorio delgado alrededor de una aplicación web en una ventana GUI nativa.
alternativamente, puede usar un marco como Pyforms para crear una experiencia consistente en la web, la línea de comandos y el escritorio, todo con una sola base de código.
¿todavía estás seguro de que quieres construir una GUI? Genial, aquí hay algunas fantásticas bibliotecas de código abierto para comenzar.,
PyQt, PySide y Qt para Python
PyQt implementa la Popular biblioteca Qt, por lo que si está familiarizado con el desarrollo de Qt en otro lenguaje, tal vez desarrollando aplicaciones nativas para KDE u otro entorno de escritorio basado en Qt, puede que ya esté familiarizado con Qt. Esto abre la posibilidad de desarrollar aplicaciones en Python que tienen un aspecto familiar en muchas plataformas, mientras se aprovechan las herramientas y el conocimiento de la gran comunidad de Qt.
Qt está bien establecido en la comunidad de desarrolladores y tiene herramientas que reflejan eso., Escribir aplicaciones Python alrededor de Qt significa que tiene acceso a QtCreator, que cuenta con un modo diseñador para generar código para el diseño de su aplicación.
PyQt tiene licencia dual bajo licencia comercial y GPL, no a diferencia del proyecto QT en sí, y la compañía principal que apoya PyQt ofrece una licencia FAQ para ayudar a entender lo que esto significa para su aplicación.
para otra opción de usar bibliotecas Qt con Python, considere Qt para Python (comúnmente conocido como PySide2), disponible bajo la LPGL.,
Tkinter
si hubiera un solo paquete que pudiera llamarse el kit de herramientas GUI «estándar» para Python, sería Tkinter. Tkinter es un envoltorio alrededor de Tcl / Tk, una popular interfaz gráfica y emparejamiento de idiomas que se popularizó por primera vez a principios de los 90. La ventaja de elegir Tkinter es la gran cantidad de recursos, incluidos libros y muestras de código, así como una gran comunidad de usuarios que pueden ayudarlo si tiene preguntas. Los ejemplos simples son fáciles de empezar y bastante legibles Para el ser humano.,
Tkinter está disponible bajo la licencia Python, encima de la licencia BSD de Tcl / Tk.
WxPython
WxPython trae la biblioteca GUI multiplataforma wxWidgets de Su C++ nativo a Python. WxPython se ve un poco más nativo que Tkinter en diferentes sistemas operativos porque utiliza los widgets del sistema host para construir una GUI. Es bastante fácil de empezar, así, y tiene una creciente comunidad de desarrolladores. Es posible que necesite empaquetar wxPython con sus aplicaciones, o bien requerir que el usuario lo instale por su cuenta, ya que no se instala automáticamente con Python.,
WxPython utiliza la licencia de biblioteca wxWindows de su proyecto padre, que está aprobada por OSI.
Python GTK + 3
anteriormente conocido como PyGTK, el proyecto Python GTK+ 3 proporciona enlaces Python a objetos GTK (windows, widgets, etc.). GTK + es el más famoso utilizado como la base para el escritorio GNOME, pero está disponible para aplicaciones independientes en Linux, Windows y Mac. Con Python GTK+ 3, el mismo framework está disponible para sus proyectos Python.
cuando usa Python GTK + 3, puede usar muchas de las mismas herramientas de desarrollo creadas para GTK+., En particular, esto incluye Glade, un diseñador de interfaces para aplicaciones GTK+. Las Interfaces diseñadas en Glade se guardan como XML y son utilizadas por el objeto GtkBuilder en el código de su aplicación, pero la interfaz que utiliza es arrastrar y soltar, lo que facilita la creación de una interfaz de usuario dinámica y receptiva sin tener que traducir lo que ve en su mente en código de diseño.
Kivy
construido con un desarrollo rápido y dispositivos modernos en mente, Kivy es un kit de herramientas para Linux (incluida la Raspberry Pi), Windows, Mac y Android., El proyecto se centra en «interfaces de usuario innovadoras», y se ha utilizado para aplicaciones multimedia, como aplicaciones de controlador de música para teléfonos o aplicaciones de pizarras que ocupan toda la pared de una sala de reuniones.
Kivy no tiene un programa de diseño visual como QtCreator y Glade, pero utiliza su propio lenguaje de diseño para ayudarlo a asociar el diseño de la interfaz de usuario con objetos de código. Esto hace que sea fácil para usted compartimentar (tanto mentalmente como en el código de diseño) las clases y funciones en su aplicación., Kivy también alberga el Kivy Garden, un repositorio de widgets y complementos creados por el usuario, por lo que si está pensando en crear algo que Kivy no proporciona, puede que ya exista en el jardín.
estas no son las únicas opciones que tiene a su disposición, ni siquiera por un tiro largo. Para más opciones, echa un vistazo a la página» GUI programming in Python » en el wiki Oficial de Python Software Foundation, que enumera docenas de otras herramientas. Hay soluciones disponibles para vincular Python a muchas bibliotecas de widgets y herramientas GUI diferentes, como FLTK, FOX y muchas otras., Si bien los principiantes probablemente deberían evitar los proyectos que proporcionan solo implementaciones parciales, o aquellos que ya no se mantienen activamente, hay muchas herramientas buenas para una variedad de situaciones.
Muchas de las opciones que hay son para aplicaciones tradicionales que adoptan el aspecto de ventana de su entorno de escritorio principal, pero también hay ocasiones en las que puede desear hacer algo completamente diferente, por ejemplo, dentro de un videojuego. También hay grandes bibliotecas para estas situaciones, como pygame, pyglet y Panda3d.
Leave a Reply