2009-04-29 20 views
39

Tengo un poco de experiencia desarrollando pequeñas aplicaciones de línea de comandos con Python. Quiero pasar al desarrollo de GUI con Python. De los kits de herramientas GUI disponibles para Python, los que me parecen más propensos son wxPython y Tkinter; pero no quiero codificar toda la GUI solo todo el tiempo.IDE agradable con diseñador de GUI para wxPython o Tkinter

¿Hay IDE GUI buenos para cualquiera de estos kits de herramientas? No necesita ser libre o de código abierto.

Respuesta

30

Hablaré solo de WxPython porque es el único kit de herramientas con el que tengo experiencia. TkInter es agradable para escribir programas pequeños (entonces no requiere un Diseñador de GUI), pero no es realmente apropiado para el desarrollo de grandes aplicaciones.

  • wxFormBuilder es realmente bueno: genera .XRC archivos que necesita para cargar en su programa, y ​​puede generar archivos .py subclasificando ellos cuando se utiliza.

  • DialogBlocks y wxDesigner son dos software comercial que puede generar el código Python directamente. No probé mucho debido a su precio.

  • wxGlade es (creo) aún no lo suficientemente maduro para programas grandes, pero vale la pena intentarlo.

Después de probar todo esto, me di cuenta de que tenían todos los defectos y que no hay nada mejor que escribir la interfaz gráfica de usuario en un editor. El problema es la curva de aprendizaje extendida. Pero luego será mucho más rápido y su código será mucho más flexible que cuando usa un diseñador de GUI.

Echa un vistazo a este list of major applications escrito con wxPython. Probablemente verá que ninguno de estos usa un Diseñador de GUI, debe haber una razón para esto.

Comprende gs cuando dice que cambia a PyQt o escribe su aplicación a mano. Eché un vistazo al diseñador de Qt en el pasado y pensé que esto era lo que necesitaba. Lamentablemente, PyQt tiene algunas restricciones de licencia.

+3

¿Cómo se define "desarrollo de aplicaciones grandes" y por qué cree que tkinter no es adecuado? Si bien nunca lo he usado con una aplicación de línea de más de un millón, creo que es tan bueno como wxPython. –

0

He usado wxGlade para algunas aplicaciones de misión crítica. Si eres un poco débil en wx, puede ser difícil, pero una vez que te acostumbras, es una gran herramienta.

15

Esto puede no responder su pregunta directamente, pero elegí PyQt porque no había buenos diseñadores de interfaz de usuario para wxPython.

Al parecer, o bien escribe sus GUI a mano o cambia a PyQt.

Como Nokia y Riverbankcomputing no pudieron ponerse de acuerdo sobre una solución LGPL, Nokia decidió construir sus propias vinculaciones: PySide.

+3

+1 Qt Designer es el programa que me hizo odiar menos a los diseñadores de UI. Además, las vinculaciones PyQt parecen un poco más Pythonic, las wx parecen tener bits de C++ que sobresalen demasiado. (Por ejemplo, los ID de evento/acción enteros). Otra cosa es que usar el código generado y los archivos de recursos cargados en el tiempo de ejecución es casi análogo. No hace daño que el código generado sea muy claro y más o menos lo que escribirías tú mismo. – millimoose

+0

¿PyQt es compatible con la apariencia nativa de Win/Mac/Linux? –

+0

@ eyze: Parcialmente. En Mac usa los elementos de Carbono (lo están portando a Cocoa ...) en Win están cambiando de elementos personalizados (apariencia nativa) a widgets nativos verdaderos. En Linux, pintan elementos personalizados, pero la apariencia se puede cambiar para todas las aplicaciones de Qt en un sistema. Otra ventaja de PyQt es su biblioteca, es mucho más que solo un marco de GUI. –

4

Uso xrced (viene con wxPython). La GUI se define en archivos xml, tiene un archivo python autogenerado que automatiza algunas inicializaciones, luego subclasifica esas clases autogeneradas y hace el resto de la inicialización a mano. Me parece que esta es una buena manera de combinar la elegancia del código GUI escrito a mano con la facilidad de generación de código GUI.

Para el código que uso WingIDE, es útil tener un buen debug y una buena terminación del código fuente cuando se trata de bibliotecas grandes (o frameworks si se quiere) como wxPython.

Si desea una mayor automatización (y por lo tanto, el código feo) probar la última versión de Boa, hay algunas grabaciones de pantalla de presentación agradable para que en ShowMeDo.com

+1

Elegancia de GUI escrita a mano ??????? –

+3

Bueno, si uno lo hace bien ...;) –

+0

Si el código GUI se hace correctamente, es tan elegante como cualquier otro código. – rectangletangle

1

Trate VisualWx. Creo que el diseñador de GUI es muy bueno; sin embargo, el IDE es bastante rudimentario (sin finalización de código, depuración, etc.). Mi patrón de trabajo es tener VisualWx y un buen editor como Komodo Edit/Netbeans/etc. abrir al mismo tiempo y cambiar entre ellos según sea necesario.

+0

VisualWX parece genial, pero ¿sigue activo? El sitio web muestra una versión alfa de abril de 2007, y solo hay 5 mensajes en el foro en los últimos seis meses. –

+0

Lo he usado para crear cuadros de diálogo de configuración para un juego que escribí, y funcionó bien para eso. Si desea las últimas novedades de las nuevas versiones de wxWindows, probablemente no sirva a sus propósitos. Pero me funcionó bien para las cosas que probé, es gratis, y la versión actual parece estable (a diferencia de Boa Constructor, por ejemplo). Mi consejo es simplemente probarlo y ver lo que piensas. – Brandon

5

Boa Constructor tiene un constructor de GUI de WxPython.

+1

Boa constructor es una excelente pieza de trabajo, es como Delphi, pero se basa en analizar el código fuente generado automáticamente por Python para hacer un seguimiento de lo que diseñó. Si actualiza wxPython tendrá que editar a mano su código generado automáticamente para que funcione nuevamente (a medida que se agregan varias banderas o se renombran las cosas entre versiones).Esto puede ser un verdadero dolor – Nick

1

utilizo Eclipse con PyDev como mi IDE de Python (que probablemente no es la mejor solución por ahí, pero es bastante decente)

Para el desarrollo de la GUI, he usado wxGlade para un proyecto de tamaño medio y me ha parecido que es bastante fácil de usar. Ha comprendido los conceptos de WxPython. La generación XML es muy útil para separar el diseño real de la GUI de la lógica del programa.

Todos estos son gratuitos.

+0

Aún no he descubierto cómo agregar python interperter a eclipse, esa instalación definitivamente no es a prueba de idiotas. ¡Me atrapó! – Iancovici

+0

No uso tanto el intérprete de Python, así que no puedo ayudarte: P –

+0

acaba de darte cuenta de que has mencionado wxGlade, +1 para una instalación sencilla y un entorno amigable =) – Iancovici

Cuestiones relacionadas