2009-06-08 13 views
17

Estamos planeando desarrollar una aplicación para supervisar y configurar nuestro servicio (que se ejecuta en el servidor remoto). Después de mucho tiempo de discusión, decidimos que Python era la plataforma para nuestra aplicación, porque amamos y conocemos a python. Pero no sabemos qué kit de herramientas GUI prefirió para nuestros objetivos. Necesitamos una aplicación rápida (para desarrollo y ejecución), cuyos usuarios serán administradores, mantenedores y administradores de cuentas.Seleccionar GUI en Windows (wxPy vs pyQt)

Hay dos herramientas GUI para python, que sabemos: wxPython y pyQT. ¿Alguien tiene argumentos con respecto a pro y contra? Y tal vez alguien conozca alguna aplicación comercial que use estos productos (solo la versión de Python de los kits de herramientas). Los enlaces son deseables.

Gracias.

Respuesta

9

Bueno, soy un fan de QT: tiene un aspecto más moderno. Sin embargo, su elección debe basarse en sus requisitos reales. Los estudios simples de comercio son útiles para esto. Haga una lista de las características que su juego de herramientas debe tener y las características que sería bueno tener y luego pésese cada elemento adecuadamente. Luego observe todas sus opciones (TKinter también) y luego puntúelos según su lista de características (utilizando los pesos que asignó a cada requisito de función). Al final, debería ser evidente cuál es el adecuado para su proyecto.

3

IronPython proporciona una opción de Windows (y Mono) para un conjunto de herramientas GUI. Proporciona acceso a las bibliotecas Winforms y WPF. Para ejemplos, vea Developing with IronPython & Windows Forms, y muchos otros.

Si desea ampliar la lista de opciones, considere la posibilidad de compilar una Web App en lugar de una aplicación de interfaz gráfica de usuario (local). Usted dice que su servicio se ejecuta en un servidor remoto, por lo que la red es parte de sus requisitos. Una vez que empiezas por ese camino, Python proporciona un bewildering amount of options.

6

Siempre me ha gustado el modelo conceptual de "señales y ranuras" de Qt, aunque supongo que puede llevar un poco de aprendizaje para los desarrolladores que están más acostumbrados a otros modelos de propagación y manejo de eventos. Personalmente, si tengo una opción, escogería PyQt por este aspecto de programación.

2

También debería echar un vistazo a PyGTK. Es similar a pyQT en el modelo de programación, pero no tiene ningún costo de licencia, ya que es LGPL. Siempre me pareció agradable trabajar como desarrollador. El inconveniente principal de pyQT es que en algunos casos eliminan la funcionalidad en elementos como los cuadros de diálogo de selección de archivos a favor de la simplicidad para el usuario.

12

Elijo wxPython después de mucha investigación. Las razones fueron:

  • "wxPython en Acción" libro de Rappin & Dunn
  • los ejemplos voluminosos que vienen como parte de la wxPython descargar
  • El número de proyectos que han utilizado wxWidgets
  • El hecho ese código wxPython funciona igual de bien en Linux, Mac OS/X y Win32

Considero que pyQT y otros investigadores lo están usando con éxito. Después de escribir muchos ejemplos en todas las API que consideré, encontré que wxPython marcaba la mayor cantidad de cuadros para mí.

En cuanto a Tkinter (TIX), creo que se ve bastante anticuado. A menos que esté utilizando IronPython o Jython, no consideraría utilizar las API de ventanas nativas asociadas. Para otro proyecto que se entregará exclusivamente en .Net, planeo usar WinForms después de muchos comentarios excelentes de los miembros de StackOverflow.

+0

1: estoy a favor de PyQt, pero el código de ejemplo que viene con wxPython es bueno. Es agradable poder copiar y pegar desde la aplicación de demostración. – Nick

+2

La afirmación "... el código de wxPython funciona igual de bien en Linux, Mac OS/X y Win32" es un poco exagerado. Regularmente encuentro diferencias entre las tres plataformas. Algunos widgets implican que no están implementados en algunas plataformas. Algunos widgets arrojan errores o tienen comportamientos diferentes en diferentes plataformas. No es omnipresente, pero hay real entre las plataformas. –

3

quiero señalar dos puntos fuertes que wxPython ha comparado con PyQt:

  1. Se utiliza widgets nativos en cada plataforma soportada. Las aplicaciones tienen un aspecto nativo y se sienten. Soy consciente de que PyQt usa estilos nativos, pero se informa que el comportamiento ("la sensación") no es nativo, especialmente en la Mac.
  2. Proporciona una selección más amplia de widgets listos para usar.
+3

En el punto 2: esto es tanto una maldición como una bendición. PyQt tiene menos widgets, pero son más potentes porque son más flexibles (por ejemplo, vista de árbol). He renunciado a wxPython porque los documentos son irregulares y he encontrado demasiados errores en el pasado. Ojalá wxPython se centrara en hacer un subconjunto más pequeño de widgets más robusto y mejor documentado, en lugar del enfoque del fregadero de la cocina que parecen tener. – Nick

4

Usted escribió "Hay dos herramientas GUI para Python, que sabemos: wxPython y pyQT." Te estás olvidando del conjunto de herramientas más obvio: tkinter. Eso es parte de una distribución básica de Python, no se requieren descargas adicionales.

Algunas personas no les gusta Tk, pero eso a menudo se debe a la ignorancia. Tk es una buena elección para un conjunto de herramientas multiplataforma. Utiliza widgets nativos en Windows (y lo ha hecho durante muchos años) y las últimas versiones de tk usan widgets temáticos en todas las plataformas.

+0

Tkinter v8.5 se ve mucho mejor que las versiones anteriores. Si su GUI solo requiere widgets básicos o está basada principalmente en Canvas, entonces Tkinter es una opción conveniente. He encontrado que http://www.tkdocs.com/ es un excelente recurso. – CyberFonic

+0

Aunque estoy de acuerdo, también diría que si su programa está basado principalmente en texto, no hay nada que pueda comparar con el widget de texto de Tk. La única desventaja es la falta de una buena opción de impresión. Aún así, supera a cualquier widget en el kit de herramientas de wxPython por millas. –

4

uso wxpython desde hace 3 años ... y ahora hemos tenido que cambiar a pyqt ya que qt está integrado en maya 2011 ... sin embargo, wxpython es más sencillo y puede comenzar a trabajar en él fácilmente y aprenderlo desde cero rápido. Proporciona recursos increíbles y decumentación. pero QT proporciona funciones más potentes que no puedes encontrar en wxpython, por ejemplo (la detección multitáctil), QT también proporciona una buena compatibilidad para dispositivos de dibujo como tabletas de PC, etc.

qt también proporciona un buen diseñador que hace que cree interfaces más rápido.
una de las desventajas es que es qt licencia ya que no es libre como wxpython

+0

Te sugiero que revises ... QT en sí es LGPL. PyQT es GPL, pero PySide es LGPL. Entonces, las licencias * son * gratuitas, pero si usa PyQT y no quiere que todo su código esté sujeto a GPL, necesita comprar una licencia comercial, mientras que PySide no tiene esas restricciones. –