2009-07-07 30 views
49

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

Acabo de empezar con TkInter y pude obtener algunos UI sencillos con widgets elementales como etiqueta, botón, cuadro de texto, etc. ¿Solo curiosidad por saber qué tan bueno sería PyQt en comparación con TkInter?

aplausos

+3

Además, tenga en cuenta que hay bastantes opciones disponibles además de simplemente TkInter y PyQt. wxPython es el que viene a la mente inmediatamente, pero hay una lista más completa en http://wiki.python.org/moin/GuiProgramming y una lista más corta de los paquetes de GUI más comunes que figuran en http: //www.python .org/doc/faq/gui /. – esm

Respuesta

43

PyQt si está desarrollando nada grave, especialmente en lo que se aprende cosas se traducirá directamente a trabajar con Qt en otros idiomas también si alguna vez necesita, y Qt es probablemente la mejor interfaz multiplataforma kit de herramientas disponible en este momento.

Existen solo dos desventajas (potenciales) reales: PyQt solo está disponible bajo licencia GPL (significa que su código también debe estar disponible bajo una licencia compatible o bajo los términos de Nokia's GPL Exception) o bajo una licencia comercial (que cuesta dinero). Esto está en contraste con Qt, que ahora está disponible bajo LGPL. PyQt tampoco está incluido por defecto en las instalaciones de Python; tendrá que empaquetar la biblioteca usted mismo. (Ars Technica tiene un good article en hacerlo para Windows y OS X.)

+3

Para código abierto, PyQt otorga una excepción a la GPL que especifica la lista de licencias que puede usar. El texto completo de la excepción se puede encontrar aquí y se incluye una copia en el paquete fuente PyQt. http://www.riverbankcomputing.co.uk/software/pyqt/license http://doc.trolltech.com/4.4/license-gpl-exceptions.html – sunqiang

+0

Derecha, gracias. Agregué una nota. –

+13

Nokia comenzó a construir una biblioteca llamada PySide que proporciona una funcionalidad casi idéntica a la de PyQt, pero bajo la LGPL. Solo está disponible en los sistemas * NIX en este momento. Pero puede simplemente intercambiar "PyQt4" por "PySide" en sus importaciones y hacer que (casi) todo funcione. http://www.pyside.org – James

12

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

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

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

+4

He escrito grandes aplicaciones comerciales con tk sin ningún problema. Se escala bastante bien. No es particularmente bueno si sus conjuntos de datos se encuentran con millones de elementos, pero pocas personas desarrollan aplicaciones como esa. –

+1

Gracias Bryan por sus comentarios. Esta respuesta se hizo hace mucho tiempo y ahora tengo una mejor experiencia con Tk y me gusta más y más. – luc

+0

he actualizado mi respuesta. Más un pb de herramientas de desarrollo que un problema de escalabilidad – luc

24

PyQt es nuestro conjunto de herramientas GUI principal 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 que usa su sistema operativo.

Pellizqué mi tema de XP y ahora mis aplicaciones tienen el mismo aspecto. Esto crea un aspecto muy profesional, no comparable con un conjunto de herramientas como Swing. La API es extensa y va más allá de las cosas simples de GUI, como los widgets. Tiene soporte para conectividad de base de datos, impresión, enhebrado (lo usé y funciona como un amuleto), ... Incluso lo uso para generar archivos PDF (no se necesitan otras librerías externas). Yo recomendaría el libro de Mark Summerfield a través de 'Rapid GUI Programming with Python and Qt' para ponerlo en velocidad. Tenga en cuenta que Qt viene con un constructor de GUI (Qt designer) que es el mejor que he usado (y probé muchos de ellos).
Incluso uso este constructor para crear maquetas para mostrar a los usuarios (¡así de fácil!).

que lo introdujeron a otros 2 desarrolladores aquí y no los han escuchado quejarse ...

+5

Una advertencia: Qt solo * se ve * nativo. Los elementos de la interfaz de usuario están emulados (al menos en Mac OS X). La "sensación" de los elementos gráficos es, según informes, extraña, a veces, debido a esta emulación. – EOL

1

utilizo PyQt - multiplataforma, fácil de trabajar y fiable.

Utilicé TkInter muy ligero y no puedo encontrar ningún punto para hacer tkInter mejor que PyQt.

3

PyQt es realmente fácil de aprender y documentos para Qt también funciona para PyQt, también hay puertos para .NET y Java. Por lo tanto, es hada multiplataforma y lenguaje cruzado. También tiene 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.

Cuestiones relacionadas