PyQt vs Tkinter (Spanish)
Tags: python, tkinter, spanish, espanol
Published: 2019-10-31 15:34:07

Tanto <a href="https://en.wikipedia.org/wiki/Tkinter">Tkinter</a> como <a href="https://riverbankcomputing.com/software/pyqt/intro/">PyQt</a> son útiles para diseñar interfaces gráficas de usuario aceptables, pero al mismo tiempo difieren en términos de adaptabilidad y funcionalidad. 

La mayoría de las veces, Tkinter se trata de escribir GUI usted mismo, programar su configuración o funcionalidad en el mismo script. 

Por otro lado, en PyQt, se separa la interfaz gráfica de usuario en un script y se utiliza el conocimiento de Python de otro script. 

En lugar de crear su propio código para la interfaz de usuario, *puede simplemente adoptar las funciones <a href="https://pythonbasics.org/qt-designer-python/">Qt Designer</a> para desarrollar su aplicación*. 


Por lo tanto, veamos cuáles son las principales diferencias y ventajas de PyQt vs. Tkinter.
 
## PyQt 

### Ventajas de usar PyQt

1.	Flexibilidad de codificación - La programación GUI con Qt está diseñada alrededor del concepto de <a href="https://pythonspot.com/pyqt5-signals-and-slots/">señales y slots</a> para establecer comunicación entre objetos. Esto permite flexibilidad cuando se trata de eventos GUI y resulta en una base de código más fluida.
2.	Más que un marco de trabajo - Qt utiliza una amplia gama de APIs de plataformas nativas con el propósito de *redes, creación de bases de datos y mucho más*. Ofrece acceso primario a ellos a través de una API única.
3.	Varios componentes de la interfaz de usuario - Qt ofrece varios widgets, como botones o menús, todos ellos diseñados con una apariencia básica en todas las plataformas soportadas.
4.	Varios recursos de aprendizaje: dado que PyQt es uno de los marcos de trabajo de interfaz de usuario más utilizados para Python, puede acceder fácilmente a una amplia gama de documentación.

<img src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fbuild-system.fman.io%2Fstatic%2Fpublic%2Fimg%2Fpyqt5-example-app.png&f=1&nofb=1">

5.	Fácil de dominar - PyQt viene con una funcionalidad API sencilla y fácil de usar, junto con clases específicas vinculadas a Qt C++. Esto permite al usuario utilizar conocimientos previos de Qt o C++, haciendo que PyQt sea fácil de entender.
 
### Desventajas de usar PyQt

1.	Falta de documentación específica de Python para las clases de PyQt5
2.	Requiere mucho tiempo para entender todos los detalles de PyQt, lo que significa que es una curva de aprendizaje bastante empinada.
 
## Tkinter

### Ventajas de usar Tkinter

1.	Disponible sin cargo para uso comercial.
2.	Se presenta en la biblioteca Python subyacente.
3.	La creación de ejecutables para las aplicaciones de Tkinter es más accesible ya que Tkinter está incluido en Python, y, como consecuencia, no viene con ninguna otra dependencia.
4.	Simple de entender y dominar, ya que Tkinter es una librería limitada con una API simple, siendo la opción principal para crear interfaces gráficas de usuario rápidas para scripts Python.
 
### Desventajas de usar Tkinter

1.	Tkinter no incluye widgets avanzados.
2.	No tiene una herramienta similar a Qt Designer para Tkinter.
3.      No tiene un aspecto nativo

<img src="https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2Fwww.ucolick.org%2F~de%2FTcl%2FTcl2K%2Fcontest.gif&f=1&nofb=1" alt="tkinter look and feel"> 
 
## What to choose?

De todos modos, en la mayoría de los casos, la mejor solución es utilizar PyQt, teniendo en cuenta las ventajas y desventajas tanto de PyQt como de Tkinter. 

La programación GUI con Qt se crea alrededor de señales y ranuras para la comunicación entre objetos. De este modo, permite flexibilidad, mientras que permite al programador acceder a una amplia gama de herramientas. 

Tkinter puede ser útil para aquellos que quieren diseñar una GUI fundamental y rápida para scripts Python, pero *para un resultado de programación más avanzado*, casi todos los programadores optan por las funcionalidades que vienen con *PyQt*. 

Reconocen que vale la pena dominar los conocimientos avanzados de PyQt debido a los resultados de programación profesional que se obtienen. 

Por lo tanto, cuando se trata de PyQt vs. Tkinter, todo depende de cuánto quieres aprender y descubrir. 


**Resources:**

* <a href="https://gum.co/pysqtsamples">Course: PyQt dekstop apps</a>
* <a href="https://pythonbasics.org/pyqt-hello-world/">PyQt hello world</A>
* <a href="https://pythonbasics.org/tkinter/">Tkinter tutorial</a>