Hace poco trabajé modificando una aplicación de Python que estaba usando widgets wxPython. He experimentado con Python en los últimos seis o siete años, pero esta fue la primera vez que hice algún trabajo con una GUI. Estaba bastante decepcionado por lo que parece ser el estado actual de la programación de GUI con Python. Me gusta mucho el lenguaje Python, es un cambio divertido de la programación Delphi/ObjectPascal a la que estoy acostumbrado, sin duda un gran aumento de productividad para tareas de programación de propósito general. Me gustaría moverme a Python para todo.preguntas sobre el estado actual de la programación de la GUI con Python
Pero wxPython es un gran paso atrás de algo como VCL de Delphi o WinForms de .NET. Si bien Python en sí ofrece buenos aumentos de productividad al programar en general un mayor nivel de abstracción, wxPython se utiliza en un nivel de abstracción mucho más bajo que el VCL. Por ejemplo, perdí mucho tiempo tratando de hacer que un objeto de la lista wxPython se comportara como yo quería. El solo hecho de agregar columnas ordenables implicaba varios pasos intensivos en el uso del código, uno para crear y mantener una estructura de datos paralelos que proporcionaba el orden de clasificación real, otro para permitir mostrar gráficos-ordenar-dirección-triángulos en el encabezado de columna, y había un par más que no recuerdo. Todos estos pasos propensos a errores se pueden lograr simplemente estableciendo un valor de propiedad usando mi componente de grilla Delphi.
Mi conclusión: mientras que Python proporciona grandes ganancias de productividad por elevar el nivel de abstracción de una gran cantidad de codificación de propósito general, wxPython es de varios niveles de abstracción menor que las herramientas de interfaz gráfica de usuario disponibles para Delphi. Resultado neto: la programación de GUI con Delphi es mucho más rápida que la programación de GUI con Python, y el interfaz de usuario resultante con Delphi es aún más refinado y completo. No me parece que sea exagerado decir que la programación de Delphi gui fue más avanzada en 1995 que la programación de python gui con wxPython en 2009.
Investigué otros frameworks de python gui y no lo hice parece que cualquiera fue sustancialmente mejor que wxPython. También realicé una investigación mínima de los forjadores de gui para wxPython, lo que habría hecho las cosas un poco mejor. Pero según la mayoría de los informes, esas soluciones son problemáticas e incluso un gran falsificador no resolvería mis principales quejas sobre wxPython, que son simplemente que tiene menos funciones y generalmente requiere que hagas programación de usuario a un nivel mucho más bajo de abstracción que yo. acostumbrado con VCL de Delphi. Algunas investigaciones rápidas sobre las soluciones de gui-dev de python sugeridas (http://wiki.python.org/moin/GuiProgramming) son, sinceramente, algo deprimentes para alguien acostumbrado a Delphi o .NET.
Finalmente, tengo un par de preguntas.
Primero, ¿me falta algo? ¿Hay alguna solución de desarrollo de gui para Python que se pueda comparar con la programación de VCL o WinForms? No necesariamente me importa si no está a la altura de la VCL de Delphi. Solo estoy buscando algo que esté en la misma liga.
En segundo lugar, ¿podría IronPython ser la dirección correcta? Intenté principalmente evitar beber .NET koolaid, pero quizás IronPython me da una razón para finalmente ceder. Incluso entonces, IronPython se integra completamente con WinForms, o tendría que hacer que los formularios fueran respaldados por C# o vb. .¿red? Me parece que definitivamente es el caso de SharpDevelop y MonoDevelop (es decir, IronPython no se puede usar para construir gui en tiempo de diseño). ¿VS.NET integra completamente IronPython con la creación de gui?
Realmente me parece que Python podría "dominar el mundo" de una manera similar a como lo hizo Visual Basic a principios de la década de 1990, si surgió una nueva y maravillosa solución de construcción de gui para Python. Solo que esta vez con Python tendríamos un paradigma completamente nuevo de programación de programación de código abierto de código abierto rápido, multiplataforma y . ¿Las corporaciones no se comerían eso?Sí, lo sé, las aplicaciones web son el enfoque principal de las cosas en estos días, por lo que una gran solución Python-gui no crearía la misma revolución que una vez VB. Pero no veo desaparecer la programación de la interfaz gráfica de usuario y me gustaría una buena solución moderna, de código abierto y de alto nivel.
¿Es este un duplicado de http://stackoverflow.com/questions/35922/are-there-any-nice-to-program-gui-toolkits-for-python? – dbr
No estoy seguro. Vi bastantes publicaciones relacionadas, pero ninguna que respondió mis preguntas directamente. Siempre me pregunto si me falta algo cuando alguien sugiere una buena solución para la programación de GUI en Python. La mayoría de ellos parecen carecer de importancia en comparación con lo que estoy acostumbrado. –
Me gusta esta pregunta. – jjnguy