Pregunta

Tengo un poco de experiencia en el desarrollo de pequeñas aplicaciones de línea de comandos con Python. Quiero pasar a desarrollar GUIs con Python. De los kits de herramientas GUI disponibles para Python, los que más me gustan son wxPython y Tkinter ; pero no quiero codificar toda la GUI por mi cuenta todo el tiempo.

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

¿Fue útil?

Solución

Solo hablaré sobre WxPython porque es la única herramienta con la que tengo experiencia. TkInter es agradable para escribir programas pequeños (entonces no requiere un GUI Designer), pero no es realmente apropiado para el desarrollo de aplicaciones grandes.

  • wxFormBuilder es realmente bueno: genera .XRC los archivos que necesita para cargar en su programa, y ??puede generar archivos .py subclasificándolos cuando los use.

  • DialogBlocks y wxDesigner son dos software comercial que pueden generar código Python directamente. No los probé mucho por su precio.

  • wxGlade aún (creo) no está lo suficientemente maduro como 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 nada es mejor que solo escribir la GUI en un editor. El problema es la curva de aprendizaje extendida. Pero entonces será mucho más rápido y su código será mucho más flexible que cuando utiliza un diseñador de GUI.

Echa un vistazo a esta lista de aplicaciones principales escrita con wxPython. Probablemente verá que ninguno de estos utiliza un Diseñador GUI, debe haber una razón para esto.

Entonces, entiendes que gs tiene razón al decir que cambias a PyQt o escribes tu aplicación a mano. Eché un vistazo al Diseñador Qt en el pasado y pensé que esto era lo que necesitaba. Desafortunadamente, PyQt tiene algunas restricciones de licencia.

Otros consejos

Puede que esto no responda a tu pregunta directamente, pero elegí PyQt porque no había buenos diseñadores de IU para wxPython.

Aparentemente, puedes escribir tus GUI a mano o cambiar a PyQt.

Debido a que Nokia y Riverbankcomputing no pudieron ponerse de acuerdo sobre una solución LGPL, Nokia decidió crear sus propios enlaces: PySide .

Boa Constructor tiene un constructor de GUI WxPython.

Yo uso xrced (viene con wxPython). La GUI se define en archivos xml, usted tiene un archivo de Python generado automáticamente que automatiza cierta inicialización, luego subclasifica esas clases generadas automáticamente 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 depurador y una buena terminación de código fuente cuando tratar con bibliotecas grandes (o marcos si lo desea) como wxPython.

Si quieres más automatización (y, por lo tanto, un código más antiguo) prueba la última versión de Boa , hay algunos buenos screencast introductorios para ello en ShowMeDo.com

Pruebe VisualWx . Creo que el diseñador de GUI es muy bueno; Sin embargo, el IDE es bastante rudimentario (sin completar el 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.

Uso Eclipse con PyDev como mi IDE de Python (que probablemente no sea la mejor solución, pero es bastante decente)

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

Todos estos son gratuitos.

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.

No es realmente un IDE de GUI pero le indica que defina las GUI de Tkinter en un archivo JSON: https://github.com / tmetsch / pytkgen

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top