2010-06-14 19 views
5

Duplicar posible:
Is Python any good for GUI development?¿Qué marcos de GUI multiplataforma se pueden usar para escribir aplicaciones de Python?

He escrito una aplicación GUI Python y lo hizo correr en Linux, Windows y Mac.

El marco que estoy utilizando es PyGtk. El resultado final no es realmente bueno: la aplicación se ve horrible en Mac, y no es realmente "nativa" en Windows. Además, en Mac el comportamiento de Windows a veces es incorrecto, con diálogos modales que aparecen debajo de las ventanas principales.

He explorado otros marcos y he encontrado que una portabilidad puede ser muy duro:

  • PyQt es enorme, difícil de instalar y distribuir bajo Mac;
  • PyGui es malo: necesito tablas y vistas de árbol al menos;
  • wxPython indica explícitamente que sea necesario utilizar una versión personalizada de pitón para Mac
  • Tkinter: no comprobarlo, sólo tienen la impresión de que es obsoleta

Sé que esta pregunta puede parecer similar a https://stackoverflow.com/questions/394039/which-python-gui-framework pero en ese hilo el problema de la portabilidad realmente no se tiene en cuenta.

Windows y Mac son obligatorios, ya que la mayoría de mis usuarios tienen esos sistemas.

¿También puede sugerir algunos libros?

+0

Tener un vistazo a esto: http: //stackoverflow.com/questions/115495/is-python-any-good-for-gui-development – systempuntoout

+0

¿Cómo has PyGTK instalado en Windows? – phkahler

+0

Esto claramente no es un duplicado y es una pregunta realmente útil, incluso si el título pudiera ajustarse un poco. Esta pregunta es sobre qué opciones tienes para escribir aplicaciones de GUI de Python. – sorin

Respuesta

0

Bueno, en realidad probé algunas soluciones y creo que procederé con wxPython.

Existen algunos problemas notables, antes que nada, debo usar el antiguo 2.5 Python. Sin embargo, pude crear un directorio .app portátil para Mac y un .exe para Windows (y un par de Makefile (s) para crearlos).

La portabilidad no se ha iniciado todavía (trabajo real y las cuestiones más urgentes llegado :-().

Gracias a todos los que planteó distintas alternativas, pero algunos problemas específicos de la aplicación realizado estas opciones no muy atractivo.

  1. quiero mi solicitud para utilizar un solo idioma/tecnología, para facilitar el mantenimiento y despliegue, flash de modo híbrido/etc enfoques de aire fueron descartados.
  2. La aplicación funcionará también fuera de línea, por lo que ningún cliente/servidor enfoque disponible.
  3. Siendo wxPython no es el framework más fácil de usar, he trabajado con swing en el pasado, y lo pasé muy mal. Tal vez, mientras tanto, las herramientas más potentes están disponibles, pero me parece wxGlade suficiente para mis necesidades, además, el argumento sólo uno entre plataformas se aplica contra el uso de Java

Sin embargo, tenía mis puntos de vista se abrieron de todas las respuestas. Gracias de nuevo

2

En mi experiencia, la programación de GUI en Python para la plataforma Mac nunca es una experiencia feliz. Es cierto que solo he trabajado con PyQT y PyGTK. El comportamiento de la ventana nunca parece correcto y los widgets no funcionan como se esperaba. Dicho esto, aquí es un recurso que lista, hasta la saciedad, herramientas GUI para Python y las respectivas plataformas que se dirigen:

http://wiki.python.org/moin/GuiProgramming

+0

Esa página no se mantiene: por ejemplo, dice sobre PyGui que no es compatible con Windows, mientras que sí lo hace. – Iacopo

+0

@lacopo - tal vez no se mantiene bien - sin embargo, sigue siendo un recurso válido y útil y debe proporcionar un punto de partida decente para explorar posibles soluciones. – thetaiko

+0

@lacopo: se aplica el argumento Wiki estándar. Si puede ver un error, adelante y corríjalo. – Oddthinking

0

no creo que esto es en realidad una pregunta Python. No está satisfecho con los kits de herramientas GUI multiplataforma en sí mismos; no hay nada de Python-y sobre lo que ha pedido. Tal vez lo que necesita hacer es encontrar un juego de herramientas GUI con el que esté satisfecho y luego preocuparse por cómo conectar su aplicación Python a eso.

La web se ha convertido en la metaplataforma de estreno, ¿no? ¿Podría usar una interfaz HTML/Javascript/Flash?

¿Algo como esto?

http://www.adobe.com/devnet/flex/articles/flex_ui_print.html ¿o esta?

http://pyjs.org/ (búsqueda de pijamas-escritorio cuando llegue allí)

+0

A falta del hecho de que está usando python y, por lo tanto, necesita un kit de herramientas compatible con python. Aunque flex y AIR son bastante geniales y funcionan bastante bien en plataformas cruzadas (aparte de lo bastante pesado), no creo que eso resuelva su problema. – MacAnthony

+0

Tengo una biblioteca bastante funcional que la aplicación está envolviendo. La biblioteca es bastante pitónica, y me gustaría no cambiarla; Quiero ampliar y mejorar, no reescribir desde cero. Trabajar con PyGTK fue rápido, y en Linux fue genial. De lo contrario, también habría considerado Java/Swing. – Iacopo

+1

El artículo flexible al que me he vinculado era sobre usar Python en una interfaz Air, comunicándome sobre el XMLRPC simple de Python. El artículo de Pajamas trata de ejecutar aplicaciones similares a GWT en el escritorio, en Python. NUNCA le sugerí que cambie de idioma, le sugerí que cambie las plataformas de IU de los sistemas operativos a los navegadores. – gomad

2

The "Code once, run everywhere" quest is a bogus one, en lo que se refiere interfaces gráficas de usuario.Si no desea que una versión de Mac que se ve & se sienta extraña y asquerosa, tendrá que desarrollar una capa de GUI separada para ella.

+0

No recomendaría esto como una respuesta. Como comentario obtendría mi voto, pero no como respuesta. Código una vez, ejecutar en todas partes me recuerda Flash fiasco: P – sorin

0

Tal vez proporcionan la respuesta en su comentario en mi respuesta original:

¿Ha considerado una solución Jython/Swing? Use Java para su GUI y su código Python para la lógica?

0

Debo decir que uso PyQt para esto. Desarrollé para Linux, Windows y Mac OS X. Y a pesar de que cuando comencé, fue un dolor hacer que funcionara en Mac OS X (sobre todo porque también lo necesitaba), ahora es mucho mejor y PyQt4 se puede instalar sin problemas. Solo necesita descargar los archivos desde www.riverbankcomputing.co.uk.

Además, otra opción es incluir PyQt4 con su aplicación y actualizar sys.path para que apunte hacia donde está instalado PyQt4. Eso es lo que estoy haciendo para garantizar que las personas no necesiten instalar nada para usar mi aplicación.

9

Probar Kivy, es de código abierto & plataforma cruzada.

Kivy es una biblioteca de software de código abierto para el desarrollo rápido de aplicaciones equipadas con nuevas interfaces de usuario, como aplicaciones multitáctiles.

+0

el kivy tiene muchos problemas – timger

Cuestiones relacionadas