Desarrollo de GUI en Python: Tkinter vs PyQt [cerrado]


Si se quiere desarrollar una interfaz de usuario en Python, ¿cuál elegir: TkInter o PyQt?

Acabo de comenzar con TkInter y pude obtener algunas UIs simples con widgets elementales como etiqueta, botón, cuadro de texto, etc. Sólo curiosidad por saber lo bueno PyQt sería comparado con TkInter?

Salud

Author: nbro, 2009-07-07

6 answers

PyQt si está desarrollando algo serio, especialmente porque las cosas que aprenda se traducirán directamente a trabajar con Qt en otros idiomas también si alguna vez lo necesita, y Qt es probablemente el mejor kit de herramientas de interfaz multiplataforma disponible en este momento.

Solo hay dos desventajas reales (potenciales):

PyQt solo está disponible bajo la GPL. Esto significa que si libera su código, debe estar disponible bajo una licencia compatible, bajo los términos de la GPL de Nokia Excepción , o bajo una licencia comercial (que cuesta dinero). Esto contrasta con Qt, que ahora está disponible bajo la LGPL.

PyQt no está incluido por defecto en las instalaciones de Python. Vas a tener que empaquetar la biblioteca tú mismo. (Ars Technica tiene un buen artículo sobre hacerlo para Windows y OS X.)

 52
Author: Sam DeFabbia-Kane,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-15 17:50:29

PyQt es nuestro principal kit de herramientas GUI ahora y después de 1 año de desarrollo no quiero volver a nada más. Es estable, maduro, multiplataforma y completamente nativo. Incluso los cuadros de diálogo del sistema (por ejemplo, para abrir archivos) son los utilizados por su sistema operativo.

He ajustado mi tema XP y ahora mi piel aplicaciones en consecuencia. Esto crea un aspecto muy profesional, no comparable con un kit de herramientas como Swing. La API es extensa y va más allá de las cosas GUI puras como widgets. Se tiene soporte para conectividad de base de datos, impresión, enhebrado (lo utilicé y funciona como un encanto),... Incluso lo uso para generar PDF (no se necesitan otras bibliotecas externas). Yo recomendaría el libro de Mark Summerfield 'Rapid GUI Programming with Python and Qt' para obtener velocidad. Tenga en cuenta que Qt viene con un generador de GUI (Qt designer) que es el mejor que he usado (y he probado muchos de ellos).
Incluso uso este constructor para crear maquetas para mostrar a los usuarios (es que ¡tranquilo!).

Lo presenté a otros 2 desarrolladores aquí y no los he oído quejarse...

 30
Author: Wim Verhavert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-10 15:15:36

Estoy usando tkinter para pequeñas aplicaciones con interfaz simple. Me gusta mucho, incluso si la falta de un buen editor WYSIWYG podría ser un problema para una aplicación más grande.

Para grandes aplicaciones, PyQt podría ser una mejor opción. Tiene un muy buen diseñador de pantalla, pero la licencia puede ser un problema.

Finalmente, wxPython puede ser una buena alternativa, porque no tiene estos inconvenientes.

 15
Author: luc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-17 14:04:08

PyQt es muy fácil de aprender y docs para Qt también funciona para PyQt también hay puertos a.NET y Java. Por lo tanto, es una plataforma cruzada de hadas y un lenguaje cruzado. También tienes PyQt integrado en Eric IDE .

El soporte para estilos CSS también es realmente brillante.

Consulte el nuevo instalador de openSUSE para ver qué puede hacer con él.

 5
Author: przemo_li,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-17 14:07:06

Puedes crear GUI enormes usando Tkinter. Si te gusta probar el módulo pytkgen ayuda a crear GUI de Tkinter a partir de definiciones JSON: https://github.com/tmetsch/pytkgen

 2
Author: Andre,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-27 12:25:26

Uso PyQt - multiplataforma, fácil de trabajar y confiable.

Usé TkInter muy ligero y no puedo encontrar un punto que haga que tkInter sea mejor que PyQt.

 0
Author: Kumaresan Lakshmanan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-10 15:30:55