PyQt vs wxPython (Spanish)
Tags: python, spanish, espanol
Published: 2019-11-01 14:05:30

<a href="https://riverbankcomputing.com/software/pyqt/intro/">PyQT</a> vs <a href="https://www.wxpython.org/">wxPython</a>: ¿Cuál de ellos debe utilizar para su proyecto?

Examinemos estos dos módulos de Python para hacer GUIs (Interfaces Gráficas de Usuario).

### ¿Qué es Python?

<a href="https://python.org">Python</a> es un lenguaje de programación de alto nivel, interpretado y de propósito general. Es un lenguaje de programación popular que puede hacer tanto programación orientada a objetos como scripting. 

Aunque fue diseñado y desarrollado por primera vez en el año 1990 (hace 29 años) por Guido van Rossum, recientemente tuvo su lanzamiento estable en el mes de octubre del año 2019.

    #!/usr/bin/python3
    imprimir "Hello World"

Python ha sido un lenguaje de programación popular a lo largo de los años y es muy apreciado por los programadores por su énfasis en la legibilidad del código y su notable uso del espacio en blanco que permite a los programadores escribir códigos lógicos para proyectos de pequeña y gran escala.

Antes de crear una interfaz gráfica de usuario, debe conocer los <a href="https://pythonbasics.org">Bases de Python </a>.

## GUI: Interfaz gráfica de usuario

Hay muchos frameworks que han ayudado a proporcionar un <a href="https://pythonspot.com/gui/">GUI (Graphic User Interface)</a> para python, y todos ellos tienen sus ventajas y desventajas en diferentes áreas, así como su funcionalidad, pero dos de las interfaces más importantes son PyQT y wxPython. 

Ahora, como programador, ¿qué es mejor para ti? ¿Existe alguna diferencia notable entre los dos? Y la pregunta importante: ¿Cuál debería utilizar para su proyecto?

<img src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fwww.wxwidgets.org%2Fabout%2Fscreenshots%2Fcars-hotsurf-msw.png&f=1&nofb=1" alt="una aplicación hecha con wxwidgets">

Este artículo pretende responder a todas estas preguntas, dividiéndolas en diferentes categorías a efectos de comparación:

## Mira

La estética general puede no parecer importante, pero es lo primero que una persona nota cuando se enciende la aplicación.

Para <a href="https://riverbankcomputing.com/software/pyqt/intro/">PyQt</a>, está escrito en C++ como <a href="https://www.wxpython.org/">wxPython</a>, pero no utiliza widgets nativos como el wxPython. 

Lo que hace en cambio es crear aproximaciones de widgets dependiendo del Sistema Operativo (SO) detectado, mientras que el wxPython tiene bibliotecas centrales que están presentes como envolturas alrededor de los widgets nativos del sistema operativo.

El PyQt hace buenas aproximaciones de los widgets, tan buenas de hecho, que es casi imposible encontrar un usuario (ni siquiera estudiantes de arte) que se quejen de cómo el PyQt no se ve o se siente nativo. 

<img src="https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2Fqt.developpez.com%2Fdoc%2F4.6%2Fimages%2Fcalendarwidgetexample.png&f=1&nofb=1" alt="pyqt">

Por otro lado, el wxPython no necesita hacer aproximaciones ya que le da el objeto exacto que codificó con sus herramientas nativas.

<img src="https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2Fwww.codeproject.com%2FKB%2FMFC%2FUltimateToolbox_Skins%2FUTBStyle2003.jpg&f=1&nofb=1" alt="wxpython gui">

## Proceso de instalación

Los pasos y el esfuerzo requerido para instalar una aplicación es muy importante, especialmente si se trata de una interfaz que desea distribuir a las personas para que la utilicen. 

Para PyQt, la instalación es más fácil que quitarle un caramelo a un bebé. Todo lo que tienes que hacer es obtener un enlace para descargar, instalar el paquete descargado y estar usando la aplicación antes de que te des cuenta. 

<img src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fwww.seppemagiels.com%2Fsites%2Fdefault%2Ffiles%2Fimages%2Finstall-qt.png&f=1&nofb=1">

Para wxPython, la instalación en Linux y Windows es fácil, pero muy agitada en Mac OS.

## Layout

El diseño de PyQt es muy sencillo. Los widgets tienen un nombre razonable, por ejemplo, QPushButton, QDial, etc. 

En wxPython, que el widget fundacional en el wxPython es la ventana wx.Window, y todo, ya sea un botón pulsador, un dial o una casilla de verificación se encuentra en la clase wx.Window.

Tanto wxPython como PyQt soportan diseños de cuadrícula y posicionamiento absoluto.

PyQt tiene un constructor GUI WYSIWYG llamado <a href="https://pythonbasics.org/qt-designer-python/">qt designer</a> que le permite arrastrar y soltar sus widgets. 

<https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fi.stack.imgur.com%2F79FdX.png&f=1&nofb=1" alt="pyqt designer">

Mientras que wxPython tiene algunos diseñadores (wxGlade, boa-constructor), no son tan fáciles de usar (en mi opinión).

## ¿Cuál es mejor? 

Depende. El wxPython es fácil de usar y las soluciones se pueden crear fácilmente cuando no es simple. Sin embargo, el PyQt es grande y tiene una gran comodidad que viene con este tamaño.

Antes de elegir la interfaz que desea utilizar o recomendar, recuerde que ambas son buenas y sólidas interfaces gráficas de usuario, pero son diferentes por su diseño y útiles en diferentes situaciones.


**Resources:**

* <a href="https://gum.co/pysqtsamples">Course: Create Python PyQt desktop apps</a>
* <a href="https://pythonbasics.org/pyqt-hello-world/">PyQt hello world, an introduction</A>
* <a href="https://pythonspot.com/wxpython-window/">wxPython tutorial</a>